| | 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 | |