{"id":31816635,"url":"https://github.com/splunk/splunk-platform-automator","last_synced_at":"2025-10-11T09:57:23.121Z","repository":{"id":44630021,"uuid":"110344126","full_name":"splunk/splunk-platform-automator","owner":"splunk","description":"Ansible framework providing a fast and simple way to spin up complex Splunk environments.","archived":false,"fork":false,"pushed_at":"2025-01-15T09:08:42.000Z","size":4600,"stargazers_count":121,"open_issues_count":1,"forks_count":48,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-01-15T11:04:22.895Z","etag":null,"topics":["ansible","ansible-playbooks","aws","splunk","splunk-enterprise","splunk-environment","vagrant","virtualbox"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/splunk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-11T12:35:04.000Z","updated_at":"2025-01-15T09:07:37.000Z","dependencies_parsed_at":"2022-08-16T09:50:15.340Z","dependency_job_id":"5f85b532-7929-4a09-8a22-71861467f6f1","html_url":"https://github.com/splunk/splunk-platform-automator","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/splunk/splunk-platform-automator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splunk%2Fsplunk-platform-automator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splunk%2Fsplunk-platform-automator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splunk%2Fsplunk-platform-automator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splunk%2Fsplunk-platform-automator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/splunk","download_url":"https://codeload.github.com/splunk/splunk-platform-automator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splunk%2Fsplunk-platform-automator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006746,"owners_count":26084185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-playbooks","aws","splunk","splunk-enterprise","splunk-environment","vagrant","virtualbox"],"created_at":"2025-10-11T09:57:21.829Z","updated_at":"2025-10-11T09:57:23.114Z","avatar_url":"https://github.com/splunk.png","language":"Python","readme":"# Splunk Platform Automator\n\n![Splunk Platform Automator Overview](https://github.com/splunk/splunk-platform-automator/blob/master/pic/splunk-platform-automator_overview.png)\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](#license)\n\nEver wanted to build a complex Splunk environment for testing, which looks as close as possible to a production deployment? Need to test a Splunk upgrade? See how Splunk indexer- or search head clustering works? Or just need to verify some configuration changes? This is the right place for you! The aim of this framework is to produce a Splunk environment in a fast and convenient way for testing purposes or maybe also for production use. The created Splunk installation and setup follows best practices. There are many ways to configure a Splunk environment in terms of configuration file locations, so this is just another example how to do it.\n\n## Table of Contents\n\n- [Splunk Platform Automator](#splunk-platform-automator)\n  - [Table of Contents](#table-of-contents)\n  - [Support](#support)\n  - [Features](#features)\n  - [Roadmap](#roadmap)\n  - [Changelog](#changelog)\n  - [Installation](#installation)\n    - [Framework Installation](#framework-installation)\n    - [Install Virtualbox support (optional)](#install-virtualbox-support-optional)\n    - [Setup Windows Subsystem for Linux (WSL2)](#setup-windows-subsystem-for-linux-wsl2)\n    - [Install and configure AWS support (optional)](#install-and-configure-aws-support-optional)\n      - [Example Basic AWS Security Group 'Splunk\\_Basic'](#example-basic-aws-security-group-splunk_basic)\n        - [Inbound Rules](#inbound-rules)\n        - [Outbound Rules](#outbound-rules)\n  - [Upgrade](#upgrade)\n    - [Migrate existing Splunk Platform Automator Environments from 1.x to 2.x](#migrate-existing-splunk-platform-automator-environments-from-1x-to-2x)\n      - [Migrate splunk\\_config.yml](#migrate-splunk_configyml)\n      - [Migrate Virtualbox Environments](#migrate-virtualbox-environments)\n      - [Migrate AWS Environments](#migrate-aws-environments)\n      - [Migrate Environments where ansible only is used](#migrate-environments-where-ansible-only-is-used)\n  - [Removed Biased Language](#removed-biased-language)\n  - [Building Windows Virtual Machine Template](#building-windows-virtual-machine-template)\n  - [Framework Usage](#framework-usage)\n    - [First start and initialization](#first-start-and-initialization)\n    - [Copy a configuration file](#copy-a-configuration-file)\n    - [Start the deployment](#start-the-deployment)\n      - [Create the Virtual Machines](#create-the-virtual-machines)\n      - [Run Ansible playbooks to deploy and configure the Splunk software](#run-ansible-playbooks-to-deploy-and-configure-the-splunk-software)\n    - [Stop hosts](#stop-hosts)\n    - [Destroy hosts](#destroy-hosts)\n    - [Rerun provisioning](#rerun-provisioning)\n    - [Login to the hosts](#login-to-the-hosts)\n      - [Login to Splunk Browser Interface](#login-to-splunk-browser-interface)\n      - [Login by SSH](#login-by-ssh)\n    - [Environment Users](#environment-users)\n      - [User vagrant](#user-vagrant)\n      - [User splunk](#user-splunk)\n    - [Copy files](#copy-files)\n      - [scp example](#scp-example)\n    - [Deploying on Amazon Cloud](#deploying-on-amazon-cloud)\n    - [Ansible playbooks only](#ansible-playbooks-only)\n    - [Build your own Python version](#build-your-own-python-version)\n    - [Create vitualenv for specific Ansible version](#create-vitualenv-for-specific-ansible-version)\n      - [Install needed python libraries in your virtualenv](#install-needed-python-libraries-in-your-virtualenv)\n  - [Known issues, limitations](#known-issues-limitations)\n    - [Supported Ansible Versions](#supported-ansible-versions)\n  - [License](#license)\n\n## Support\n\n**Note: This framework is not officially supported by Splunk. I am developing this on best effort in my spare time.**\n\n## Features\n\n- Build complex, reproducible Splunk environments in one shot, including all roles available for Splunk Enterprise.\n- Building Cluster Manager, Indexer Clusters, Deployer, Search Head Clusters, Deployment Server, Universal Forwarders, Heavy Forwarders, License Manager and Monitoring Console. All ready to use.\n- Configuration done according best practices with configuration apps\n- Splunk environment definition stored in one simple [yaml](http://docs.ansible.com/ansible/latest/YAMLSyntax.html) file\n- [Example configuration files](examples) for different setups included\n- Deployment and configuration done with [Ansible](https://www.ansible.com)\n- Virtual hosts can be created by [Vagrant](https://www.vagrantup.com)\n  - Currently supports [Virtualbox](https://www.virtualbox.org) or [AWS Cloud](https://aws.amazon.com).\n- Can deploy Splunk on existing hosts (virtual or physical)\n- Developed and tested on MacOSX but should support Linux as well.\n\n## Roadmap\n\nSee the upcoming features in the [Roadmap](ROADMAP.md)\n\n## Changelog\n\nImplemented changes are to be found in the [Changelog](CHANGELOG.md)\n\n## Installation\n\nThe Framework is currently tested on Mac OSX and Linux, but any other Unix, which is supported by Virtualbox, should work too.\n\n### Framework Installation\n\n1. Make sure you have Python 3.6+ installed. If not available for your distro, you can [build your own Python version](#build-your-own-python-version).\n    1. [Install needed python libraries](#install-needed-python-libraries-in-your-virtualenv)\n1. Download and install [Vagrant](https://www.vagrantup.com). Is you are using the AWS plugin, see version hints [here](#install-and-configure-aws-support-optional)\n1. Install Ansible, I personally prefer [Brew](https://brew.sh) (on OSX) which makes it as easy as `brew install ansible`. For [supported Ansible versions check here](#supported-ansible-versions)\n1. Create a folder called `Vagrant` and change into it.\n1. Download and extract a [Splunk Platform Automator release here](https://github.com/splunk/splunk-platform-automator/tags) or clone from GitHub when using the master branch: `git clone https://github.com/splunk/splunk-platform-automator.git`\n1. Create a folder called `Software`.\n1. Download the tgz. archive for the Splunk Software and put in the `Software` directory\n    1. [Splunk Enterprise](http://www.splunk.com/en_us/download/splunk-enterprise.html)\n    1. [Splunk Universal Forwarder](http://www.splunk.com/en_us/download/universal-forwarder.html)\n1. Download Splunk Professional Services Best Practices Base Config Apps and extract them into the `Software` directory\n    1. [Configurations Base Apps](https://drive.google.com/open?id=107qWrfsv17j5bLxc21ymTagjtHG0AobF)\n    1. [Configurations Cluster Apps](https://drive.google.com/open?id=10aVQXjbgQC99b9InTvncrLFWUrXci3gz)\n1. If you have a Splunk License file, link it to the name `Splunk_Enterprise.lic` inside the `Software` directory.\n\nYour directory structure should now look like this:\n\n```bash\n./Vagrant/splunk-platform-automator/...\n./Vagrant/Software/Configurations - Base/...\n./Vagrant/Software/Configurations - Index Replication/...\n./Vagrant/Software/splunk-8.1.2-545206cc9f70-Linux-x86_64.tgz\n./Vagrant/Software/splunkforwarder-8.1.2-545206cc9f70-Linux-x86_64.tgz\n./Vagrant/Software/Splunk_Enterprise.lic\n```\n\n### Install Virtualbox support (optional)\n\n1. Download and install [Virtualbox](https://www.virtualbox.org/wiki/Downloads).\n1. Install the Virtualbox plugin for Vagrant: `vagrant plugin install vagrant-vbguest`\n\n### Setup Windows Subsystem for Linux (WSL2)\n\nThe [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) does allow to run Splunk Platform Automator on Windows. It even allows to create virtualbox hosts from it on the windows host directly.\n\nExecute the steps [above](#framework-installation). To allow vagrant to talk to virtualbox follow the steps below.\n\n- Create /etc/wsl.conf and reboot WSL (`wsl --shutdown`)\n\n```ini\n[automount]\noptions = \"metadata\"\n```\n\n- Enable WSL2 port forwarding by installing a vagrant plugin with: `vagrant plugin install virtualbox_WSL2`\n- Add Environment Variables in WSL (maybe to your `~/.bashrc`)\n\n```bash\nexport VAGRANT_WSL_ENABLE_WINDOWS_ACCESS=\"1\"\nexport PATH=\"$PATH:/mnt/c/Program Files/Oracle/VirtualBox\"\n```\n\n### Install and configure AWS support (optional)\n\n1. Install either of the aws vagrant plugins:\n    - [vagrant-aws](https://github.com/mitchellh/vagrant-aws): This is te orig plugin but not maintained anymore and has issues with newer vagrant versions on OSX. The last working version of vagrant is 2.3.4. Install it with `vagrant plugin install vagrant-aws`\n    - [vagrant-gecko-aws](https://github.com/geckoboard/vagrant-aws): This is a clone of the orig project and does support newer versions (up to 2.3.7) of vagrant. Install it with `vagrant plugin install vagrant-gecko-aws --entry-point vagrant-aws`\n2. Download the vagrant dummy box for aws: `vagrant box add aws-dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box`\n3. Generate AWS ACCESS Keys, described [here](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)\n4. Optional, but recommended:\n    - Add AWS_ACCESS_KEY_ID=\\\u003cyour access key ID\\\u003e as environment variable\n    - Add AWS_SECRET_ACCESS_KEY=\\\u003cyour secret access key\\\u003e as environment variable\n5. Create an ssh key pair described [here](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair) and store the public key on your disk for later reference in the config file\n6. Create an AWS [security group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#vpc-security-groups) and name it for example 'Splunk_Basic' and add the following TCP ports\n\n#### Example Basic AWS Security Group 'Splunk_Basic'\n\n##### Inbound Rules\n\n| Type       | Protocol | Port Range | Source        | Description                |\n| ---------- | -------- | ---------- | ------------- | -------------------------- |\n| All TCP    | TCP      | 0 - 65535  | 172.31.0.0/16 | Allow all internal traffic |\n| Custom TCP | TCP      | 8000       | 0.0.0.0/0     | Splunk Web Interface       |\n| SSH        | TCP      | 22         | 0.0.0.0/0     | SSH to all hosts           |\n\n##### Outbound Rules\n\n| Type        | Protocol | Port Range | Destination   | Description               |\n| ----------- | -------- | ---------- | ------------- | ------------------------- |\n| All Traffic | All      | All        | 0.0.0.0/0     | Allow all traffic         |\n\n## Upgrade\n\nTo upgrade your Splunk Platform Automator, just update your local code from the repo\n\n```bash\ngit pull\n```\n\n### Migrate existing Splunk Platform Automator Environments from 1.x to 2.x\n\nFrom Splunk Platform Automator 2.0 the Framework does use an [Ansible Inventory Plugin](https://docs.ansible.com/ansible/latest/plugins/inventory.html) to build the inventory on the fly during execution. The local `inventory` directory does only hold minimum settings based on the virtualization you choose. The rest calculated in flight and not stored somewhere.\n\nYou can verify your inventory with\n\n```bash\nansible-inventory --list --export\n```\n\n#### Migrate splunk_config.yml\n\nThe steps here apply to all environments.\n\n- You have to add the `plugin` setting to the top of your config file\n  \n```yml\n# splunk_config.yml\nplugin: splunk-platform-automator\n```\n\n#### Migrate Virtualbox Environments\n\nThe steps here only apply if your current environment is built on virtualbox.\n\n- Cleanup unneeded entries from the ansible inventory\n\n```bash\nrm -rf inventory/group*\n```\n\n- Move the setting `start_ip` in the `general` section to the `virtualbox` section.\n\n#### Migrate AWS Environments\n\nThe steps here only apply if your current environment is built on AWS.\n\n- Cleanup unneeded entries from the ansible inventory\n\n```bash\nrm -rf inventory/*\n```\n\n- Build the config/aws_ec2.yml config file\n\n```bash\nvagrant status\n```\n\n- Get the GUID from config/aws_ec2.yml at `tag:SplunkEnvID:` and add a tag `SplunkEnvID` to every host in your AWS environment with that GUID\n- Create also a tag `SplunkHostname` for every AWS host with the name of your hosts from the splunk_hosts section\n\nIf you have the aws cli available, this can be done with the following one liner\n\n```bash\nfor machine in $(ls -1d .vagrant/machines/*); do aws ec2 create-tags --resources $(cat $machine/aws/id) --tags Key=SplunkHostname,Value=$(basename $machine) Key=SplunkEnvID,Value=$(grep \"tag:SplunkEnvID:\" config/aws_ec2.yml | cut -d: -f3 | tr -d \" \") Key=Name,Value=$(basename $machine) --no-cli-pager; done\n```\n\n#### Migrate Environments where ansible only is used\n\nThe steps here only apply if your current environment is not built with vagrant.\n\nThe process is not so traight forward, since I do not know how you built your ansible inventory. Basically, you have\nto make sure everything you defined in your inventory files is reflected in the splunk_config.yml file.\n\n- Before you upgrade your splunk automator environment, you have to export the inventory to a file\n\n```bash\nansible-inventory --list --export \u003e inventory_1.txt\n```\n\n- Migrate all settings to the splunk_config.yml file\n- Remove the complete inventory\n\n```bash\nrm -rf inventory/*\n```\n\n- After the upgrade and building of your splunk_config.yml, you can check the new inventory with the `ansible-inventory` command and compare it with your dump from version 1.x\n\n## Removed Biased Language\n\nWith Splunk 9.x some configuration terms have been renamed and are considered deprecated. The Base Config Apps habe been changed and need to be updated and some apps have been renamed. Please download the latest version. The Splunk Platform Automator Framework does taking care of this automatically when Splunk version 9.x or higher is installed. Existing installation are working as is but the settings should be changed manually in the apps.\n\nThose settings have been changed:\n\n- server.conf[clustering]\n  - mode = `manager` or `peer`\n  - master_uri -\u003e manager_uri\n- server.conf[clustermaster:\u0026lt;name\u0026gt;] -\u003e [clustermanager:\u0026lt;name\u0026gt;]\n- server.conf[license]\n  - master_uri -\u003e manager_uri\n- outputs.conf[indexer_discovery:\u0026lt;name\u0026gt;]\n  - master_uri -\u003e manager_uri\n\nDue to this some roles have been renamed in the config file. Please update your exsiting configs:\n\n- cluster_master -\u003e cluster_manager\n- license_master -\u003e license_manager\n\n## Building Windows Virtual Machine Template\n\nTo build your own windows vagrant image follow [Setup Windows Vagrant image](docs/Setup_Windows_Box.md)\n\n## Framework Usage\n\n### First start and initialization\n\nRun vagrant the first time to initialize itself and create needed directories. You must execute vagrant always in side the Splunk Platform Automator directory where the `Vagrantfile` sits, otherwise it will not work correctly. You will see the usage page, when executing vagrant without options.\n\n```bash\ncd splunk-platform-automator\nvagrant\n```\n\n### Copy a configuration file\n\nThere is one single configuration file, where all settings for your deployment are defined. Copy one configuration file from the [examples](examples) to `config/splunk_config.yml` and adjust the setting to your needs. For a standard setup you should be fine with most of the default settings, but there are a lot of things you can adjust for special cases. See the [configuration description](examples/configuration_description.yml) file, where all existing values are described.\n\nAWS: See [instruction here](#deploying-on-amazon-cloud) when deploying into Amazon Cloud. You can start with [splunk_config_aws.yml](examples/splunk_config_aws.yml) for a simple environment. Copy `splunk_idxclusters`, `splunk_shclusters` and `splunk_hosts` sections from other examples for more complex deployments.\n\n### Start the deployment\n\nWhen building virtual machines (for virtualbox) the first time it will pull an os image from the internet. The box images are cached here: `~/.vagrant.d/boxes`.\n\n#### Create the Virtual Machines\n\n```bash\nvagrant up\n```\n\n#### Run Ansible playbooks to deploy and configure the Splunk software\n\nThe `vagrant up` command only creates the virtual machines. To deploy Splunk afterwards, run this command:\n\n```bash\nansible-playbook ansible/deploy_site.yml\n```\n\nTo run both steps with one command use:\n\n```bash\nvagrant up; ansible-playbook ansible/deploy_site.yml\n```\n\n### Stop hosts\n\nThis will gracefully shutdown all the virtual machines.\n\n```bash\nvagrant halt\n```\n\n### Destroy hosts\n\nYou can destroy all the virtual machines with one command.\n\n```bash\nvagrant destroy [-f] [\u003chostname\u003e]\n```\n\n### Rerun provisioning\n\nAnsible playbooks can be run over and over again. If the virtual machine is already built, you can rerun the playbooks on a certain host again. This can be needed if something fails and you fixed the error.\n\n```bash\nansible-playbook ansible/deploy_site.yml [--limit \u003chostname\u003e]\n```\n\n### Login to the hosts\n\n#### Login to Splunk Browser Interface\n\nTo login to one of the hosts just open the `index.html` file created in the splunk-platform-automator/config directory. You will find links to every role of your deployment.\nIf something changes along the way and you need to update the linkpage just call this playbook:\n\n```bash\nansible-playbook ansible/create_linkpage.yml\n```\n\n#### Login by SSH\n\nVagrant deployes an ssh key for the vagrant user to login without a password.\n\n```bash\nvagrant ssh \u003chostname\u003e\n```\n\n### Environment Users\n\n#### User vagrant\n\nVagrant uses a dedicated user to work inside the virtual machines. The user name is `vagrant` and has sudo rights to switch to root or other users.\n\n#### User splunk\n\nSplunk Enterprise is installed and run as user `splunk`. You can switch to this user by `sudo su - splunk`. For convenience, I have added some command aliases to the user `vagrant` and user `splunk`.\n\n```bash\nalias\n```\n\n### Copy files\n\nYou can copy files from your host system to the virtual nodes with the vagrant command. You need to install the vagrant plugin `vagrant-scp` to have this feature available. Check [Vagrant Docs](https://www.vagrantup.com/docs/plugins/usage.html) on how to do this.\n\n```bash\nvagrant scp \u003cfiles\u003e \u003ctarget_on_dest\u003e [vm_name]\n```\n\n#### scp example\n\n```bash\nvagrant scp ../app_dir/splunk-add-on-for-unix-and-linux_831.tgz /var/tmp uf\n```\n\n### Deploying on Amazon Cloud\n\nSplunk Platform Automator can talk to the AWS cloud and create virtual machines with Splunk in the cloud. Vagrant is using the plugin [vagrant-aws](https://github.com/mitchellh/vagrant-aws) for that. Follow these steps to setup Splunk Platform Automator for AWS. In the example there is a simple network setup, with only one Security group, covering all ports. More complex network setups should be possible, but make sure the host, where Splunk Platform Automator is running does have ssh access to all instances.\n\nTo prepare the configuration file for Amazon deployments\n\n- Take the [AWS example](examples/splunk_config_aws.yml) and fill in the values you like in the 'aws' section. You need at least:\n  - access_key_id, secret_access_key if not specified as ENV vars.\n  - keypair_name\n  - ssh_private_key_path\n  - security_groups\n  - you can use the new 'splunk_download' section in 'splunk_defaults', if you do not want to upload the splunk binaries from your host all the time. This will download them from splunk.com instead.\n\nYou can copy splunk_hosts and cluster configs from other example files to the AWS template to create more complex environments. There can be all configuration option used, which are described in the vargant-aws plugin. They can also set individually on the splunk hosts, if needed. Just add a aws: section to the host.\n\n### Ansible playbooks only\n\nYou can also use the ansible playbooks without vagrant. For that you have to create your virtual or physical machines by other means. You can use the ansible playbooks to\ndeploy the Splunk roles onto the existing servers. Specify the hostnames in the `splunk_config.yml` file in the `splunk_hosts` section.\nAnsible needs to know where to connect to via ssh to run the playbooks. For this you need to create some custom variables in the\n`splunk_config.yml` file.\n\nAs a minimum specify the ssh user for ansible and the ssh private key which has been deployed on the systems. This user must be able to elevate to the `root` user with sudo.\n\n```yml\ncustom:\n  ansible_user: ansible\n  ansible_ssh_private_key_file: '~/.ssh/id_rsa'\n```\n\nIf you have host specific variables the custom section can also be added on host level. This could be for example `ansible_host` if different from the hostname. Also check [configuration description](examples/configuration_description.yml)\n\nYou can verify things like this first with an ansible ping:\n\n```bash\nansible -m ping all\n```\n\nAnd then some more ansible prerequisites with this playbook\n\n```bash\nansible-playbook ansible/test_ansible_prereqs.yml\n```\n\n### Build your own Python version\n\nYou can build your own python version, if you need a specific python version or your local one is outdated.\nPlease install the needed development tools in order to be able to compile stuff.\n\nAn easy way to install new python versions is using [pyenv](https://github.com/pyenv/pyenv) but you can also manually install Python like for example:\n\n```bash\ncd\nmkdir tmp\nmkdir -p ~/Python/3.9.9\ncd tmp\nwget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz\ntar -xzf Python-3.9.9.tgz\ncd Python-3.9.9/\n./configure --prefix=~/Python/3.9.9 --with-ensurepip=install\nmake\nmake install\n```\n\n### Create vitualenv for specific Ansible version\n\nIf you need a specific Ansible version you can create it inside a virtualenv environment. This can\n be useful when deploying older linux images, which too old python versions. An easy way to install new virtual environments is using [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) or you can do it manually like the following example.\n\n```bash\npython3 -m venv ansible_414\nsource ansible_414/bin/activate\npython -m pip install ansible==7.7.0\n```\n\nThis installs ansible 2.14.10, see the [version mapping](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-community-changelogs)\n\n#### Install needed python libraries in your virtualenv\n\nYou must install some additional python modules for Splunk Platform Automator to work:\n\n- jmespath # required for json_query calls\n- lxml     # required for license file checks\n- boto3    # required for ec2 (aws) plugin\n\nUse the requirements file for easy installation\n\n```bash\npython -m pip install -r requirements.txt\n```\n\nCheck the ansible version\n\n```bash\nansible --version\n```\n\nIf the version is not correct, open a new terminal and activate the\nvirtual environment again with the command from above.\n\n```bash\nsource ansible_414/bin/activate\n```\n\n## Known issues, limitations\n\n- Ubuntu 20.04 fails on checking the systemd settings and needs a more current ansible version. See [service_facts broken in Ubuntu 20.04](https://github.com/DataDog/ansible-datadog/issues/274)\n- ulimit settings not working on Ubuntu 14 (without systemd)\n- Forwarding data from a universal forwarder to a heavy forwarder cannot be configured in the config file. This must be done manually after installation.\n- Virtualbox: Virtual host startup does not respond sometimes, if it fails, recreate the host again.\n- Virtualbox has some issues with clock time skew, when not using virtualbox additions. I added a workaround with forcing time clock sync every 5 minutes. A working internet connection on the Virtualbox host is needed.\n- AWS: Due to security reasons the login page with the admin password information has been disabled and https is enabled with splunk's own self signed certs.\n- AWS: OS images (AMI) do not have ntp configured by default. This will be added in Splunk Platform Automator later.\n\n### Supported Ansible Versions\n\nThe following Ansible versions are tested and working with Splunk Platform Automator, but any newer version should work as well.\n\n- :x: Ansible 2.7.x (EOL)\n- :x: Ansible 2.8.x (EOL)\n- :x: Ansible 2.9.x (EOL)\n- :white_check_mark: Ansible 2.10.x (EOL)\n- :white_check_mark: Ansible 2.11.x (EOL)\n- :white_check_mark: Ansible 2.12.x (EOL)\n- :white_check_mark: Ansible 2.13.x (EOL)\n- :white_check_mark: Ansible 2.14.x (EOL)\n- :white_check_mark: Ansible 2.15.x (EOL)\n- :white_check_mark: Ansible 2.16.x (EOL)\n- :white_check_mark: Ansible 2.17.x\n- :white_check_mark: Ansible 2.18.x\n- :white_check_mark: Ansible 2.19.x\n\nCheck the [Ansible Support Matrix](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix) for the most current information.\n\n## License\n\nCopyright 2022 Splunk Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsplunk%2Fsplunk-platform-automator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsplunk%2Fsplunk-platform-automator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsplunk%2Fsplunk-platform-automator/lists"}