Ansible
Install
# apt-get install software-properties-common ansible
Kõisse masinaisse tuleb paigaldada SSH võti
# ssh-keygen -t rsa
Kliendid vaja defineerida
Kliendi defineerimine toimub failis /etc/ansible/hosts näiteks lisame ühe kliendi gruppi test
[test] 10.20.0.20
Neid gruppe võib teha terve hulga, nt kõik masinad ära jaotada opsüsteemide järgi
[debian] vm1 vm2 vm3 [fedora] netflix [centos] confluence vm-server1 gitlab [ubuntu] trusty-mirror media-centre nas
Käsurealt kasutamine
Kõikide nodede korrasoleku kontroll
# ansible all -m ping
Küsime nodedelt hostname käsku
# ansible -m shell -a "hostname" all
Samamoodi võib käsurealt otse teha ka jõhkramaid toiminguid, nt midagi installida
# ansible all -s -m shell -a 'apt-get install nginx'
Playbook
Playbookid on .yml failid, kus defineeritakse Ansible tegevused ja tegevuste järjekord. Näiteks lihtne playbook mis paigaldab ngxinxi apt moodulit kasutades ning paneb selle tööle.
---
- hosts: debian
tasks:
- name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
- start nginx
handlers:
- name: start nginx
service: name=nginx state=started
Nende käivitamiseks
# ansible-playbook test.yml
Keerukam lahendus, mis juba lisaks paigaldab vaikimisi nginx konfi ja tõmbab alla ka gitist veebiserveri sisu
---
- hosts: debian
sudo: yes
tasks:
- name: paigaldame nginx
apt: name=nginx state=installed update_cache=yes
- name: loome nginxile konfiguratsiooni
template: src=templates/nginx.conf.j2 dest=/etc/nginx/nginx.conf
notify: restart nginx
- name: paigaldame veebiserverisse sisu
git: repo=https://github.com/jweissig/episode-47.git
dest=/usr/share/nginx/html/
version=release-0.01
- name: start
service: name=nginx state=started
handlers:
- name: restart nginx
service: name=nginx state=restarted
Ansible sisaldab lisaks suurt hulka mooduleid praktiliselt kõige tegemiseks. Moodulite nimekirja näeb
# ansible-doc -l
https://github.com/randohinn/KnowHow/blob/master/docs/Vorgurakendused/ansible.rst
https://github.com/asjalik/ansible