Ansible: Difference between revisions
Line 19: | Line 19: | ||
== Kasutamine == | == Kasutamine == | ||
=== Paigaldamine === | === Paigaldamine === | ||
Ansible paigaldamiseks on võimalik tõmmata see otse projekti [https://github.com/ansible/ansible GitHub'i repost] või paigaldada operatsioonisüüsteemi pakihaldustarkvara abil.<ref name="ansible_installation"/> | |||
;Ansible paigaldamine [[APT]]'i abil | |||
sudo apt-get install ansible | |||
;Versiooni (ja paigaldatuse kontroll) | |||
ansible --version | ansible --version | ||
=== Esmane seadistamine === | === Esmane seadistamine === |
Revision as of 21:52, 11 January 2014
Tutvustus
Ansible on vabavaraline (GPL)[1] konfiguratsiooni ja seadistuse haldamise tarkvaraplatvorm.[2]
Konfiguratsiooni hoidmiseks kasutatakse YAML'i faile mis võivad olla omavahel hierarhiliselt seotud.[3] 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.[4]
Tarkvara loojaks on Michael DeHaan, kes eelnevalt on loonud Cobbler'i ning olnud Puppet'i arendaja.[5]
Nimetus "Ansible" on pärit O.S.Card'i raamatust Enderi mäng, kus kirjeldatakse samanimelist valguse kiirusest kiiremat suhtlusprotokolli.[6]
Ansible'ile on võimalik osta ka ärikliendi tuge.[7]
Erinevused levinud alternatiividega
Ansible peamine erinevus oma konkurentidega Puppet ja Chef on agendi kui sellise puudumine. Klientide seadistamiseks kasutatakse juba (enamus juhtudel) olemasolevaid vahendeid - SSH ja Python. [8]
SaltStack on Ansible'ga vägagi sarnane, ent erineb klientidega suhtlemise osas, kasutades 0mq'd ning täiendades seda enda poolt AES krüpteeringuga (milles võib aeg-ajalt esineda vigasid[9]). Ansible poolt kasutatav SSH ei lisa süsteemi täiendavaid ründevektoreid.[10]
Kasutamine
Paigaldamine
Ansible paigaldamiseks on võimalik tõmmata see otse projekti GitHub'i repost või paigaldada operatsioonisüüsteemi pakihaldustarkvara abil.[4]
- Ansible paigaldamine APT'i abil
sudo apt-get install ansible
- Versiooni (ja paigaldatuse kontroll)
ansible --version
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
Syntaks
Veebiserveri jaoks vajalike pakkide paigaldamine
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 järgnev. Installime veebiserveri jaoks vajalikud komponendid:
--- - 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:
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
Kontrollime tulemust klientarvutis (192.168.56.1):
dpkg -l|grep apache
ii apache2 2.2.22-1ubuntu1.4 Apache HTTP Server metapackage ii apache2-mpm-worker 2.2.22-1ubuntu1.4 Apache HTTP Server - high speed threaded model ii apache2-utils 2.2.22-1ubuntu1.4 utility programs for webservers ii apache2.2-bin 2.2.22-1ubuntu1.4 Apache HTTP Server common binary files ii apache2.2-common 2.2.22-1ubuntu1.4 Apache HTTP Server common files
dpkg -l|grep php5
ii php5 5.3.10-1ubuntu3.9 server-side, HTML-embedded scripting language (metapackage) ii php5-cgi 5.3.10-1ubuntu3.9 server-side, HTML-embedded scripting language (CGI binary) ii php5-cli 5.3.10-1ubuntu3.9 command-line interpreter for the php5 scripting language ii php5-common 5.3.10-1ubuntu3.9 Common files for packages built from the php5 source ii php5-curl 5.3.10-1ubuntu3.9 CURL module for php5 ii php5-ldap 5.3.10-1ubuntu3.9 LDAP module for php5
Konfifaili lisamine/muutmine
Kasulikk materjale
- https://www.youtube.com/watch?v=PDRdCqFp2sY Continuous Deployment with Ansible
- http://www.ansibleworks.com/tech/ How Ansible Works
- http://docs.ansible.com/modules.html Documentation
Kasutatud kirjandus
- ↑ Ansible license in GitHub, https://github.com/ekarak/ansible/blob/master/license/gpl.txt
- ↑ Ansible: CM, Deployment, and Ad-hoc Task Execution All in One, http://server.dzone.com/articles/ansible-cm-deployment-and-ad
- ↑ Ansible Playbooks, http://docs.ansible.com/playbooks_intro.html
- ↑ 4.0 4.1 Ansible installation manual, http://docs.ansible.com/intro_installation.html
- ↑ Michael DeHaan's bio, http://investing.businessweek.com/research/stocks/private/person.asp?personId=233466314&privcapId=233465248&previousCapId=233465248&previousTitle=AnsibleWorks,%20Inc
- ↑ Why is it called Ansible, http://www.ansibleworks.com/faq/
- ↑ AnsibleWorks homepage, http://www.ansibleworks.com/
- ↑ Review: Puppet vs. Chef vs. Ansible vs. Salt, http://www.infoworld.com/d/data-center/review-puppet-vs-chef-vs-ansible-vs-salt-231308?page=0,1
- ↑ SaltStack AES bug, https://github.com/saltstack/salt/commit/5dd304276ba5745ec21fc1e6686a0b28da29e6fc
- ↑ Ansible and Salt: A detailed comparison, http://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/
Autorid
Silver Vesi AK31
Peeter Tomusk AK41