Skip to content

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:

  • -m siin defineerib mooduli
  • -a on argument moodulile
  • all on 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 saab
  • ansible -m ansible.builtin.service -a "name=sshd state=stopped" all - paneb masinas teenuse nimega sshd staatusesse stopped.
  • ansible -m ansible.builtin.shell -a 'cat /etc/passwd' all - vaatab masina /etc/passwd faili.

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öö!