Ansible: Difference between revisions
Line 109: | Line 109: | ||
== Viited == | == Viited == | ||
https://www.youtube.com/watch?v=PDRdCqFp2sY Continuous Deployment with Ansible | https://www.youtube.com/watch?v=PDRdCqFp2sY Continuous Deployment with Ansible<br/> | ||
http://www.ansibleworks.com/tech/ | http://www.ansibleworks.com/tech/ | ||
Revision as of 17:33, 5 January 2014
Tutvustus
Ansible on vabavaraline (GPL) konfiguratsiooni ja seadistuse haldamise tarkvaraplatvorm.
Konfiguratsiooni hoidmiseks kasutatakse YAML'i faile mis võivad olla omavahel hierarhiliselt seotud.
Ansible on kirjutatud Python'is ning seadistuse vahendamiseks kasutatakse SSH protokolli (Python'i paramiko teeki või OS'i ssh käsku rakendades).
Hallatava masina eelduseks on sissetulevate SSH ühenduste lubamine ja Python'i interpretaatori olemasolu (vähemalt versioon 2.4), eraldiseisvat klienti või agenti ei ole.
Tarkvara loojaks on Michael DeHaan, kes eelnevalt on loonud Cobbler'i ning olnud Puppet'i arendaja.
Nimetus "Ansible" on pärit O.S.Card'i raamatust Enderi mäng, kus kirjeldatakse samanimelist valguse kiirusest kiiremat suhtlusprotokolli.
Ansible'ile on võimalik osta ka ärikliendi tuge firmalt AnsibleWorks.
Erinevused levinud alternatiividega
Ansible peamine erinevus oma konkurentidega, sh. Puppet ja Chef on see, et ta on loodud mitte ainult agendi(kliendi)vabana, vaid lisaks puudub igasugune vajadus seadistada klientarvuteid, sest toimingud teostatakse üle SSH protokolli. Lisaks, kuna ta on kirjutatud Pythonis, peab serverarvutisse olema paigaldatud Python 2.4 või uuem.
Kasutamine
Paigaldamine
Installeerime Ansible:
root@puppet:/# apt-get install ansible Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ansible 0 upgraded, 1 newly installed, 0 to remove and 24 not upgraded. Need to get 0 B/245 kB of archives. After this operation, 1,219 kB of additional disk space will be used. Selecting previously unselected package ansible. (Reading database ... 140139 files and directories currently installed.) Unpacking ansible (from .../ansible_1.1+dfsg-1~ubuntu12.04.1_all.deb) ... Processing triggers for man-db ... Setting up ansible (1.1+dfsg-1~ubuntu12.04.1) ...
Kontrollime, et sai ilusti peale:
root@puppet:/# ansible --version ansible 1.1
Esmane seadistamine
Avame konfifaili ja muudame ära mõnede parameetrite väärtused:
vi /etc/ansible/ansible.cfg
Muudame protokolli SSH'ks, sest see on paindlikum:
# connection to use when -c <connection_type> is not specified transport=paramiko
>>
transport=ssh
Lülitame sisse parooliga audentimise:
ssh_args=-o PasswordAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r
>>
ssh_args=-o PasswordAuthentication=yes -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r
Tekitame grupi milles on kõik webserverid mida hallata tahame, antud juhul üksainus:
vi /etc/ansible/hosts [webservers] 192.168.56.1
Kasutamine
Tekitame skriptide, ehk kohalikus keeles playbookide jaoks eraldi kausta ja selle sisse yml faili nimega apache.yml:
mkdir /etc/ansible/playbooks vi apache.yml
Faili sisuks:
--- - hosts: webservers user: student vars: gather_facts: False sudo: True tasks: - name: install apache and php packages apt: pkg=$item state=latest force=yes with_items: - apache2 - php5 - php5-cgi - php5-cli - php5-curl - php5-ldap ...
Käivitame playbooki:
root@puppet:/# ansible-playbook -k -K /etc/ansible/playbooks/apache.yml
Sisestame ssh ja sudo parooli ning mõne aja pärast saame tagasisidet teostatud toimingute kohta:
SSH password: sudo password: PLAY [webservers] ********************* TASK: [install apache and php packages] ********************* changed: [192.168.56.1] => (item=apache2,php5,php5-cgi,php5-cli,php5-curl,php5-ldap) PLAY RECAP ********************* 192.168.56.1 : ok=1 changed=1 unreachable=0 failed=0
Viited
https://www.youtube.com/watch?v=PDRdCqFp2sY Continuous Deployment with Ansible
http://www.ansibleworks.com/tech/
Autorid
Silver Vesi AK31
Peeter Tomusk AK41