This repository is a collection of Ansible playbooks and associated resources.
It was initially created to operate the infrastructure at eyeo.
In order to prepare the local system for development or provisioning of any environment, first clone the Git repository:
git clone https://gitlab.com/shallot/ansible-playbooks
Now cd
to the local repository and then fetch the submodules
that populate the roles/
directory therein:
git submodule update --init
Next the Ansible software and some auxiliaries need to be
installed. On supported systems, the provision-localhost.yml
playbook can
ensure the required dependencies are available:
ansible-playbook --ask-become-pass provision-localhost.yml
By default, the tasks associated with the Vagrant providers of virtual machines are not run, because there are multiple options, typically libvirt or VirtualBox.
Some options come with eponymous example tags that invoke helper playbooks
which in turn set those up. One can either use the option --tags libvirt
to explicitly perform those, or run both the regular
(untagged
) and libvirt
tasks together:
ansible-playbook -K --tags untagged,libvirt provision-localhost.yml
The analogous syntax should also work for virtualbox
.
When the operating system is not supported, one needs to manually ensure the dependencies being available before working with the repository.
If you can't run provision-localhost.yml on your system, you can manually install the following list of dependencies required to run the Ansible playbooks within this repository:
- The Ansible software, version 2.10
- The Git software, for fetching dependencies
- The OpenSSH client software
- The Vagrant software, for virtual environments in development
- Software that provides Vagrant with virtual machines, such as:
- The virtualenv software, for isolating Python packages in development or in other specific use cases
The lists above do not include the dependencies of the listed items themselves.
In order to install and configure pre-commit for the invetory repository on the admin hosts pre-commit has to be installed by hand and the created hook files committed to the repository.