Ansible: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ptomusk (talk | contribs)
Ptomusk (talk | contribs)
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"/>
Installeerime Ansible (kõik käsud soovitavalt juurkasutaja õigustes!):
;Ansible paigaldamine [[APT]]'i abil
 
   sudo apt-get install ansible
  apt-get install ansible
;Versiooni (ja paigaldatuse kontroll)
 
  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:
 
   ansible --version
   ansible --version
  ansible 1.1


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

Kasutatud kirjandus

Autorid

Silver Vesi AK31
Peeter Tomusk AK41