„Ansible“ yra vienas geriausių automatizavimo įrankių, siūlantis paprastus, intuityvius ir galingus įrankius automatikos užduotims atlikti šiuolaikiniame pasaulyje.
Atlikdami daugumą automatizavimo užduočių, turėsite sukurti katalogus, ypač diegdami įvairius įrankius ir programas, atsargines kopijas ir atkurdami. Nors šias užduotis galite atlikti naudodami automatizuotą scenarijų, „Ansible“ suteikia geresnes funkcijas, leidžiančias kurti katalogus nurodytuose pagrindiniuose kompiuteriuose.
Šioje pamokoje parodoma, kaip naudoti failo modulį „Ansible“ kuriant, pašalinant ir modifikuojant nurodytų kompiuterių katalogų teises.
Kaip sukurti katalogą „Ansible“
Kuriant katalogą „Ansible“ galima naudoti bet kurį iš šių metodų:
- Neapdorota „Ansible“ komanda su komandų moduliu
- Failų modulis „Ansible playbook“
Norėdami sukurti katalogą „Ansible“ naudodami komandų modulį, įveskite toliau nurodytą komandą:
$ ansible all -m komanda -a "mkdir ~ / backups"Įvedę pirmiau nurodytą komandą, turėtumėte gauti žemiau pateiktą išvestį:
Įveskite slaptažodžio „home / user /“ slaptafrazę.ssh / id_rsa ':[ĮSPĖJIMAS]: Apsvarstykite galimybę naudoti failo modulį su būsena = directory, o ne paleisti „mkdir“. Jei jums reikia naudoti komandą, nes nepakanka failo, prie šios komandinės užduoties galite pridėti „warn: false“ arba nustatyti „command_warnings = False“.cfg atsikratyti šios žinutės.
35.222.210.12 | PAKEISTA | rc = 0 >>
Patikrinkite, ar jūsų „Ansible hosts“ apraše / etc / ansible / hosts yra teisinga informacija apie jūsų nuotolinius kompiuterius.
Nors komandų modulį paprasta naudoti viename „Ansible“ pagrindiniame kompiuteryje, jis tampa labai neefektyvus dirbant su keliais kompiuteriais su skirtingais katalogais ir užduotimis.
Norėdami pašalinti šį trūkumą, naudosime failą „Ansible File“ ir sukursime grojaraštį, kuriame bus norimi naudoti pagrindiniai kompiuteriai ir norimi sukurti katalogai.
PASTABA: Failų modulis taip pat gali būti naudojamas kaip viena komanda „Ansible“, tačiau jis veikia panašiai kaip komandų modulis.
Norėdami naudoti „Ansible playbook“, sukurkite YAML failą ir įveskite šiuos įrašus, kad sukurtumėte katalogą:
- kompiuteriai: visos užduotys:- pavadinimas: galimas failo modulio kūrimo katalogas
failas:
kelias: ~ / atsarginės kopijos
būsena: katalogas
Išsaugokite failą ir naudokite „ansible-playbook“, kad sukurtumėte katalogus:
ansible-playbook mkdir.ymlTai turėtų sukurti tokią išvestį, kokia yra žemiau, nurodant, kad veiksmai buvo sėkmingai atlikti naudojant nurodytą grojaraščio failą.
Žaisti viską] ********************************************** *************************************************** *************UŽDUOTIS [Faktų rinkimas] ************************************** *************************************************** **
Įveskite slaptažodžio „home / user /“ slaptafrazę.ssh / id_rsa ':
gerai: [35.222.210.12]
UŽDUOTIS [Ansible file module create directory] ***************************************** **********************************
gerai: [35.222.210.12]
ŽAISTI ATSILIEPIMĄ **************************************** *************************************************** ***********
35.222.210.12: ok = 2 pasikeitė = 0 nepasiekiama = 0 nepavyko = 0 praleista = 0 išgelbėta = 0 ignoruota = 0
Kaip sukurti kelis katalogus su elementais
Be to, naudodamiesi grojaraščiais, galite sukurti kelis katalogus naudodami YAML failo teiginį with_items.
Pvz., Norėdami sukurti trijų paslaugų, „MySQL“, saugyklos ir konfigūracijos, atsargines kopijas, galite sukurti žemiau esančiame YAML faile rodomą užduotį:
- kompiuteriai: visos užduotys:- pavadinimas: galima sukurti kelis katalogus su_elementais
failas:
kelias: ~ / atsarginės kopijos / item
būsena: katalogas
with_items:
- „mysql“
- „saugykla“
- „config“
Išsaugokite aukščiau esantį failą ir paleiskite jį naudodami „ansible-playbook“.
$ ansible-playbook mkdir_multi.yml PLAY [visi] ******************************************** *************************************************** *************************************************** *************************************************** ***UŽDUOTIS [Faktų rinkimas] ********************************************** *************************************************** *************************************************** ****************************************
Įveskite slaptažodžio „home / user /“ slaptafrazę.ssh / id_rsa ':
gerai: [35.222.210.12]
UŽDUOTIS [Galima sukurti kelis katalogus su elementais] ********************************** *************************************************** *************************************************** *************
pasikeitė: [35.222.210.12] => (elementas = mysql)
pasikeitė: [35.222.210.12] => (prekė = saugykla)
pasikeitė: [35.222.210.12] => (elementas = konfigūracija)
ŽAISTI ATSISKAITYMĄ ********************************************** *************************************************** *************************************************** ***************************************************
35.222.210.12: ok = 2 pakeista = 1 nepasiekiama = 0 nepavyko = 0 praleista = 0 išgelbėta = 0 ignoruota = 0
Pirmiau pateiktoje grojaraštyje turėtų būti sukurti keli katalogai, pvz., ~ / Backups / mysql, ~ / backups / repository ir ~ / backups / config.
$ ls -laKatalogų sąrašo išvestis yra tokia, kaip parodyta žemiau:
iš viso 0drwxrwxr-x. 5 debian debian 51 kovo 6 17:26 .
drwx------. 6 debian debian 117 Kovo 6 17:26…
drwxrwxr-x. 2 debian debian 6 Kovo 6 17:26 konfig
drwxrwxr-x. 2 debian debian 6 kovas 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 kovo 6 17:26 saugykla
Kaip nustatyti leidimus katalogui
„Ansible“ leidžia nurodyti katalogo teises naudojant režimo direktyvą. Apsvarstykite šį grojaraštį, kuris sukuria katalogą ir nustato teises:
- šeimininkai: visiužduotys:
- pavadinimas: galimas kurti katalogą ir nustatyti leidimus
failas:
kelias: / atsarginės kopijos
būsena: katalogas
režimas: „u = rw, g = wx, o = rwx“
tapti: taip
Pirmiau pateiktame įraše sukūrėme katalogą /. Mes taip pat turėjome tapti šaknimis, taigi ir „tapti: taip“.
$ ansible playbook leidimas.yml PLAY [visi] *********************************************** *************************************************** *************************************************** *************************************************** ***UŽDUOTIS [Faktų rinkimas] ********************************************** *************************************************** *************************************************** ****************************************
Įveskite slaptažodžio „home / user /“ slaptafrazę.ssh / id_rsa ':
gerai: [35.222.210.12]
UŽDUOTIS [Neįmanoma sukurti katalogo ir nustatyti leidimų] ************************************* *************************************************** *************************************************** ****************
pasikeitė: [35.222.210.12]
ŽAISTI ATSISKAITYMĄ ******************************************** *************************************************** *************************************************** ***************************************************
35.222.210.12: ok = 2 pakeista = 1 nepasiekiama = 0 nepavyko = 0 praleista = 0 išgelbėta = 0 ignoruota = 0
Jei peržiūrėsite mūsų sukurto katalogo teises, pamatysite:
$ ls -lrt / | grep atsargines kopijasIšvestis yra tokia, kaip parodyta žemiau:
drw - wxrwx. 2 šaknų šaknis 6 kovo 6 17:36 atsarginės kopijosKaip rekursyviai pakeisti leidimus kataloge
Jei norite pakeisti katalogo ir jo failų teises rekursyviai, tiesiog nurodykite rekursinį įrašą, kaip parodyta žemiau:
- šeimininkai: visiužduotys:
- vardas: galimas kurti katalogą ir nustatyti leidimus
failas:
kelias: / atsarginės kopijos
būsena: katalogas
režimas: „u = rw, g = wx, o = rwx“
rekursinis: taip
tapti: taip
Kaip nustatyti leidimus keliuose kataloguose
Nustatyti kelių katalogų leidimus „Ansible“ taip pat paprasta, kaip kelias įrašų eilutes. Apsvarstykite šią pjesę.
- šeimininkai: visiužduotys:
- pavadinimas: negalimas sukurti susikurtą katalogą su leidimais
failas:
kelias: "elementas.kelias "
mode: "item.mode "
būsena: katalogas
with_items:
- kelias: '~ / backups / mysql', režimas: '0777'
- kelias: '~ / backups / repository', režimas: '0755'
- kelias: '~ / backups / config', režimas: '0707'
Kaip ištrinti katalogą „Ansible“
Norėdami pašalinti katalogą ir visą jo turinį naudodami „Ansible playbook“, nurodykite būseną kaip nebuvusią, kaip parodyta žemiau:
- šeimininkai: visiužduotys:
- pavadinimas: galimas ištrinti katalogą
failas:
kelias: / atsarginės kopijos
būsena: nėra
tapti: taip
Ši komanda pašalins katalogą ir visus vaikų failus bei katalogus.
PASTABA: Įsitikinkite, kad turite leidimus katalogui, kuriame dirbate.
Kaip sukurti laiko žymos katalogą
Kai kuriais atvejais gali tekti sukurti katalogą, prie kurio pridėta laiko žyma, kuri gali būti labai naudinga, ypač kuriant atsargines kopijas. Norėdami sukurti laiko žymėtą katalogą, galime naudoti kintamąjį ansible_date_time.
Apsvarstykite šią pjesę:
- šeimininkai: visiužduotys:
- pavadinimas: į katalogą galima pridėti laiko žymę
failas:
kelias: "/ backups / mysql ansible_date_time.data"
būsena: katalogas
režimas: „0777“
tapti: taip
Kai paleisite grojaraštį, turėsite katalogą su laiko žyme.
$ ls -lKatalogų sąrašas turėtų būti toks, kaip parodyta žemiau:
viso 0 drwxrwxrwx. 2 šaknų šaknis 6 kovo 6 18:03 mysql2021-03-06PASTABA: Kad išvengtumėte klaidų, visada patikrinkite YAML failo sintaksę, kurią ketinate naudoti „Ansible“.
Išvada
Ši pamoka parodė, kad darbas su „Ansible“ moduliais yra labai lengvas ir intuityvus, todėl sudėtingų užduočių automatizavimas tampa paprastesnis. Naudodami „Ansible file“ modulį, galite sukurti vieną ar daugiau katalogų ir kiekvienam pridėti leidimus. Tą patį modulį taip pat galite naudoti katalogui pašalinti. Norėdami gauti daugiau informacijos apie tai, kaip naudoti failą „Ansible File“, patikrinkite oficialius dokumentus išteklių puslapyje.