| 1 | = Using Ansible = |
| 2 | |
| 3 | Ansible is a configuration management system that does not require any special installation on the nodes besides Python and SSH. Currently most UFO software can be deployed with it. |
| 4 | |
| 5 | == Installing Ansible == |
| 6 | |
| 7 | Ansible has to be installed only on the machine from which the installation should be orchestrated. The simplest way is to setup a virtual env and install Ansible from PyPI: |
| 8 | |
| 9 | {{{ |
| 10 | $ mkvirtualenv ansible |
| 11 | $ (workon ansible) |
| 12 | $ pip install ansible |
| 13 | }}} |
| 14 | |
| 15 | A machine state is configured through Ansible playbooks and roles. The UFO configuration can be cloned via |
| 16 | |
| 17 | {{{ |
| 18 | $ git clone http://ufo.kit.edu/git/playbooks |
| 19 | }}} |
| 20 | |
| 21 | In there you find a `setup.yml` mapping hosts onto roles and giving them tags. Hosts are specified in a hosts file, one example is already present as `hosts.sample`. To run a playbook you have to specifiy the hosts file, the user (in our case root) and optionally which tag to run: |
| 22 | |
| 23 | {{{ |
| 24 | $ ansible-playbook -i hosts -u root -t compute setup.yml |
| 25 | }}} |
| 26 | |
| 27 | |