Algus ja ad-hoc¶
Masinate ligipääs¶
Kõigile on loodud kaks avalikult ligipääsetavat masinat - Debian ja CentOS masin.
Ligipääsuandmed asuvad treeningu alguses välja jagatud paberilipiku peal (väike). Seal peaks olema mõlema masina kohta:
* IP aadress: <kõigil erinev>
* Kasutajanimi: root
* Parool: <kõigil erinev>
Complete
Ülesanne on sisse elada ja proovida nendele masinatele mööda SSH ühendust ligi pääseda. Peaksite saama SSH-d kasutades juurkasutajale ligi.
Võtke hetk, vaadake masinates ringi, et teaksite kus mis asub. Kui mingeid probleeme, võtke ühendust instruktoriga.
Verify
Siit ei ole enne mõistlik edasi minna, kui olete kindlasti mõlemasse masinasse sisse loginud.
Ansible paigaldamine¶
Laboris Ansible jooksutamiseks on kaks varianti - kas kasutada enda arvutit, või kasutada laborikeskkonna Ansible masinat. See, kumba varianti kasutada sõltub sellest, kas saad enda masinasse Ansiblet installida.
See on võimalik Linuxi ja Maci masinates lihtsasti, Windowsis peab kaustama WSLi või virtuaalmasinat. Kui ei soovi midagi enda masinasse paigaldada, tuleks kasutada laborikeskkonna varianti.
Enda arvutis tuleb paigaldada Ansible, selleks, et seda kasutada saaks.
Complete
Olenevalt millist OS-i kasutatakse, tuleb valida paigaldusmeetod:
Linux: Paketihalduri või pip-iga installida pakk ansible ja sshpass.
Mac: Kasutades brew-d installida pakk ansible.
Windows: Kasutada laborikeskkonda, või enda masinas Linuxi WSL-i või virtuaalmasinat.
Rohkem infot siin: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Verify
Kui pakett on paigaldatud, peaks olema kättesaadav käsk:
ansible --version
Kui see töötab, ja tagastab infot Ansible kohta, siis saab edasi minna.
Important
NB! pip-iga paigaldades võib juhtuda, et neid käskusid ei panda PATH-i. Selle kohta peaks siis pip kollase väljundi andma.
Laborikeskkonna andmed on alguses välja jagatud paberilipiku peal (väike). Seal peaks olema info:
- IP aadress: ansible.hashify.ee
- Kasutajanimi: Laborimasina nimi (vormis
training-XX) - Parool: Sama mis laborimasina root parool
Sinna keskkonda võib SSH-ga siseneda, kasutades neid andmeid. Keskkonnas on juba Ansible ette ära paigaldatud, ja saate seda kasutada.
Verify
Käsk ansible --version peaks andma Ansible kohta väljundi.
Important
Kuna kõik osalejad jagavad seda masinat, et Ansible-t kasutada, siis ei saa kasutada tsentraalset /etc/ansible/hosts inventarifaili. Selle asemel tuleb kasutada kasutajapõhist või projektipõhist.
Kõige lihtsam on oma projektikaustas teha hosts fail teiste asjade kõrvale, või kasutada -i <inventarifaili_asukoht> lippu.
Esimesed Ansible käsud¶
Esimese asjana kontrollime, et Ansible töötab õigesti - teeme Ansible versiooni ping-ist.
Complete
ansible -m ping localhost
Verify
Selle peale peaks tulema sarnane väljund:
[centos@test ~]# ansible -m ping localhost
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
See väljund näitab, et Ansible üritas ühenduda lokaalsesse masinasse sama kasutajaga, ja see õnnestus. Kuna kasutaja konteksti ei ole vaja muuta, siis kõik toimub ilma parooli vajamata.
Inventarifail¶
Enne, kui saame laborimasinate pihta käskusid jooksutada, tuleb Ansible jaoks masinad ära kirjeldada.
Complete
Tee endale masinasse projektikaust sobilikku kohta. Nimi ega tee ise pole olulised.
Siis, vastavalt keskkonnale (kas enda masin, või laborikeskkonna oma), loo või muuda inventarifail, ning defineeri seal kaks gruppi - centos ja debian:
[centos]
<centos_masina_ip>
[debian]
<debian_masina_ip>
Nagu näha, siis meie kasutame inventari jaoks INI formaati. Erilist vahet neil kasutamise perspektiivist ei ole, aga inimlik veaoht on INI'ga väiksem.
Verify
Üks paremaid käsklusi kontrollimaks, kas inventar on korras ja töötab, on käsk ansible-inventory --list. Peaksite nägema mõlemat masinat defineerituna väljundis. Täpsemalt kogu väljundist räägime hiljem.
Ad-hoc käsud¶
Kõige kiirem ja lihtsam variant Ansible kasutuseks on kasutada ad-hoc käskusid - samamoodi nagu me esimese käsuga tegime. Küll aga on palju huvitavam neid jooksutada teiste masinate vastu.
Selleks tuleb lihtsalt anda käsk järgmises formaadis:
ansible -m <moodul> <sihtmärk>
Sihtmärk siin kontekstis on inventaris kirjeldatud grupi nimi, mille pihta seda käsku soovitatakse jooksutada. On ka variandiks kasutada erilist gruppi all, mis tähendab kõiki gruppe ja seadmeid. Seda ei pea eraldi kirjeldama inventaris, vaid sinna pannakse kõik seadmed mis üldse selles inventaris defineeritud.
Complete
Jooksutame lihtsa käsu, mis käivitab masinas käsureal käsu uptime.
ansible -m shell -a uptime all -i <inventari_fail> -k
Lipud:
-msiin defineerib mooduli-aon argument moodulileallon inventari grupi nimi.-i <inventari_fail>lubab defineerida inventari faili, kui ei kasutata vaikimisi faili-kütleb Ansible-le, et ta peaks küsima parooli masinasse ühendumiseks.-uütleb Ansible-le, millist kasutajat kasutada.
Verify
Väljundiks peaks tulema midagi sarnast:
193.40.11.110 | CHANGED | rc=0 >>
22:56:30 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
193.40.11.124 | CHANGED | rc=0 >>
22:56:30 up 6:18, 1 user, load average: 0.00, 0.00, 0.00
Kaks blokki, üks iga masina kohta. Blokis on esimene rida masina definitsioon inventaris, siis kas midagi muutus, ja siis käsu return code.
Järgneva reana tuleb väljund moodulist.
Kui masinaid on piisavalt palju, siis ad-hoc käsud juba aitavad teatud tegevusi lihtsustada, sest jooksevad üle kõigi masinate. Mõned näited (ei pea masinas käivitama, aga võite):
ansible -m reboot all- laseb masina rebooti, ning ootab kas see tagasi tuleb (s.t. kas Ansible pärast ligi pääseb sellele uuesti)ansible -m ping all- kontrollib kas Ansible masinale ligi saabansible -m ansible.builtin.service -a "name=sshd state=stopped" all- paneb masinas teenuse nimegasshdstaatusessestopped.ansible -m ansible.builtin.shell -a 'cat /etc/passwd' all- vaatab masina/etc/passwdfaili.
Edasi rutates - see ei ole primaarne meetod kuidas Ansiblet kasutatakse. Järgmises osas vaatame, kuidas see paremasse vormi viia. Küll aga loogika on ka seal väga sarnane.
Praktilise osa lõpp¶
Kui lõpetasite praktilise osa, siis võib kasutada ülejäänud aega sirutuspausina! Tubli töö!