Ansible je jedan od najboljih dostupnih alata za automatizaciju koji nudi jednostavne, intuitivne i moćne alate za izvršavanje zadataka automatizacije u modernom svijetu.
Za većinu zadataka automatizacije morat ćete stvoriti direktorije, posebno kada instalirate razne alate i programe, sigurnosne kopije i obnavljanja. Iako ove zadatke možete izvoditi pomoću automatizirane skripte, Ansible pruža bolju funkcionalnost, omogućujući vam stvaranje direktorija u navedenim hostovima.
Ovaj vam vodič pokazuje kako koristiti modul datoteke Ansible za stvaranje, uklanjanje i izmjenu dozvola direktorija za određene hostove.
Kako stvoriti direktorij u odgovornom jeziku
Za izradu direktorija u Ansibleu može se koristiti bilo koja od sljedećih metoda:
- Sirova naredba Ansible s naredbenim modulom
- Datotečni modul u Ansible playbook
Da biste stvorili direktorij u Ansibleu pomoću naredbenog modula, unesite naredbu prikazanu dolje:
$ ansible all -m naredba -a "mkdir ~ / sigurnosne kopije"Nakon unosa gornje naredbe, trebali biste dobiti izlaz prikazan dolje:
Unesite lozinku za ključ '/ home / user /.ssh / id_rsa ':[UPOZORENJE]: Razmislite o korištenju datotečnog modula s direktorijom state =, a ne o pokretanju 'mkdir'. Ako trebate koristiti naredbu jer je datoteka nedovoljna, ovom naredbenom zadatku možete dodati 'warn: false' ili u ansible postaviti 'command_warnings = False'.cfg da biste se riješili ove poruke.
35.222.210.12 | PROMIJENJENO | rc = 0 >>
Provjerite sadrži li popis inventara hostova Ansible u / etc / ansible / hosts tačne podatke o vašim udaljenim hostovima.
Iako je naredbeni modul jednostavan za upotrebu na jednom Ansible hostu, on postaje vrlo neučinkovit kada se radi s više hostova s različitim direktorijima i zadacima.
Kako bismo se suprotstavili ovom nedostatku, upotrijebit ćemo modul datoteke Ansible i izraditi priručnik koji sadrži hostove koje želimo koristiti i direktorije koje želimo stvoriti.
BILJEŠKA: Datotečni modul se također može koristiti kao pojedinačna naredba u programu Ansible, ali djeluje slično kao i naredbeni modul.
Da biste koristili Ansible playbook, stvorite YAML datoteku i unesite sljedeće unose za stvaranje direktorija:
- domaćini: svi zadaci:- ime: modul datoteke s odgovornim datotekama kreira direktorij
datoteka:
put: ~ / sigurnosne kopije
stanje: direktorij
Spremite datoteku i upotrijebite ansible-playbook za izradu direktorija:
ansible-playbook mkdir.ymlTo bi trebalo proizvesti izlaz poput ovog u nastavku, pokazujući da su radnje uspješno izvedene pomoću navedene datoteke playbook.
Igraj sve] ********************************************** **************************************************** *************ZADATAK [Prikupljanje činjenica] *********************************************** **************************************************** **
Unesite lozinku za ključ '/ home / user /.ssh / id_rsa ':
u redu: [35.222.210.12]
ZADATAK [Ansible file module create directory] ******************************************** **********************************
u redu: [35.222.210.12]
IGRAJ RECAP ************************************************** **************************************************** ***********
35.222.210.12: ok = 2 promijenjeno = 0 nedostižno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 zanemareno = 0
Kako stvoriti više direktorija s stavkama
Ansible playbooks također vam omogućuju stvaranje više direktorija pomoću naredbe with_items u datoteci YAML.
Na primjer, za stvaranje sigurnosnih kopija za tri usluge, MySQL, spremište i konfiguraciju, možete izgraditi zadatak prikazan u YAML datoteci u nastavku:
- domaćini: svi zadaci:- ime: Ansible stvara više direktorija s_items
datoteka:
putanja: ~ / sigurnosne kopije / item
stanje: direktorij
with_items:
- 'mysql'
- 'spremište'
- 'konfiguracija'
Spremite gornju datoteku i pokrenite je s ansible-playbook.
$ ansible-playbook mkdir_multi.yml PLAY [svi] *********************************************** **************************************************** **************************************************** **************************************************** ***ZADATAK [Prikupljanje činjenica] *********************************************** **************************************************** **************************************************** *****************************************
Unesite lozinku za ključ '/ home / user /.ssh / id_rsa ':
u redu: [35.222.210.12]
ZADATAK [Ansible stvoriti više direktorija s_items] ****************************************** **************************************************** **************************************************** *************
promijenio: [35.222.210.12] => (stavka = mysql)
promijenio: [35.222.210.12] => (stavka = spremište)
promijenio: [35.222.210.12] => (stavka = konfiguracija)
IGRAJ RECAP ************************************************ **************************************************** **************************************************** ****************************************************
35.222.210.12: ok = 2 promijenjeno = 1 nedostižno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 zanemareno = 0
Gornja knjiga knjiga trebala bi stvoriti više direktorija, kao što su ~ / backups / mysql, ~ / backups / repository i ~ / backups / config.
$ ls -laIzlaz s popisa direktorija prikazan je dolje:
ukupno 0drwxrwxr-x. 5 debian debian 51 6. ožujka 17:26 .
drwx------. 6 debian debian 117 6. ožujka 17: 26…
drwxrwxr-x. 2 debian debian 6. ožujka 6 17:26 config
drwxrwxr-x. 2 debian debian 6 ožujka 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6. spremište 6. ožujka 17:26
Kako postaviti dozvole za direktorij
Ansible vam omogućuje da odredite dozvole za direktorij pomoću direktive o načinu. Razmotrite sljedeću knjigu priručnika koja stvara direktorij i postavlja dozvole:
- domaćini: svizadaci:
- ime: Ansible stvoriti direktorij i postaviti dozvole
datoteka:
put: / sigurnosne kopije
stanje: direktorij
način rada: "u = rw, g = wx, o = rwx"
postati: da
U gornjem zapisu stvorili smo direktorij u /. Također smo trebali postati root, pa stoga i postati: yes ulazak.
Dopuštenje $ ansible-playbook.yml PLAY [svi] *********************************************** **************************************************** **************************************************** **************************************************** ***ZADATAK [Prikupljanje činjenica] *********************************************** **************************************************** **************************************************** *****************************************
Unesite lozinku za ključ '/ home / user /.ssh / id_rsa ':
u redu: [35.222.210.12]
ZADATAK [Odgovorno stvaranje direktorija i postavljanje dozvola] ***************************************** **************************************************** **************************************************** ****************
promijenio: [35.222.210.12]
IGRAJ RECAP ************************************************ **************************************************** **************************************************** ****************************************************
35.222.210.12: ok = 2 promijenjeno = 1 nedostižno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 zanemareno = 0
Ako pogledate dozvole direktorija koji smo stvorili, vidjet ćete sljedeće:
$ ls -lrt / | grep sigurnosne kopijeIzlaz je prikazan dolje:
drw - wxrwx. Korijen 2 korijena 6. ožujka 6 17:36 sigurnosne kopijeKako rekurzivno promijeniti dozvole u direktoriju
Da biste rekurzivno promijenili dozvole direktorija i njegovih datoteka, jednostavno navedite rekurzivni unos, kao što je prikazano dolje:
- domaćini: svizadaci:
- ime: Ansible stvoriti direktorij i postaviti dozvole
datoteka:
put: / sigurnosne kopije
stanje: direktorij
način rada: "u = rw, g = wx, o = rwx"
rekurzivno: da
postati: da
Kako postaviti dozvole u više direktorija
Postavljanje dozvola za više direktorija u programu Ansible također je jednostavno kao nekoliko redaka unosa. Razmotrite sljedeću knjigu priručnika.
- domaćini: svizadaci:
- ime: Ansible stvoriti višestruki direktorij s dozvolama
datoteka:
put: "stavka.staza "
način rada: "stavka.način rada "
stanje: direktorij
with_items:
- put: '~ / sigurnosne kopije / mysql', način rada: '0777'
- put: '~ / sigurnosne kopije / spremište', način rada: '0755'
- put: '~ / sigurnosne kopije / konfiguracija', način rada: '0707'
Kako izbrisati direktorij u Ansible
Da biste uklonili direktorij i sav njegov sadržaj pomoću knjige za reprodukciju Ansible, navedite stanje kao odsutno, kao što je prikazano u nastavku:
- domaćini: svizadaci:
- ime: Odgovorni direktorij za brisanje
datoteka:
put: / sigurnosne kopije
stanje: odsutno
postati: da
Ova će naredba ukloniti direktorij i sve podređene datoteke i direktorije.
BILJEŠKA: Provjerite imate li dozvole za direktorij na kojem radite.
Kako stvoriti direktorij s vremenskim žigom
U nekim slučajevima možda ćete trebati stvoriti direktorij s vremenskom oznakom koja mu je priložena, što može biti vrlo korisno, posebno pri stvaranju sigurnosnih kopija. Da bismo stvorili vremenski označen direktorij, možemo koristiti varijablu ansible_date_time.
Razmotrite sljedeću knjigu priručnika:
- domaćini: svizadaci:
- ime: Odgovorno dodaj vremensku oznaku u direktorij
datoteka:
put: "/ sigurnosne kopije / mysql ansible_date_time.datum"
stanje: direktorij
način rada: "0777"
postati: da
Jednom kada pokrenete knjigu priručnika, imat ćete direktorij s vremenskom oznakom.
$ ls -lPopis direktorija trebao bi biti kako je prikazano dolje:
ukupno 0 drwxrwxrwx. Korijen 2 korijena 6. ožujka 18:03 mysql2021-03-06BILJEŠKA: Da biste izbjegli pogreške, uvijek provjerite sintaksu YAML datoteke koju namjeravate koristiti u programu Ansible.
Zaključak
Ovaj vam je vodič pokazao da je rad s modulima Ansible vrlo jednostavan i intuitivan, što pojednostavljuje automatizaciju složenih zadataka. Pomoću modula datoteke Ansible možete stvoriti jedan ili više direktorija i dodati dopuštenja za svaki. Isti modul možete koristiti i za uklanjanje direktorija. Za više informacija o korištenju modula datoteke Ansible provjerite službenu dokumentaciju na stranici resursa.