Ansible ir viens no labākajiem pieejamajiem automatizācijas rīkiem, kas piedāvā vienkāršus, intuitīvus un jaudīgus rīkus automatizācijas uzdevumu veikšanai mūsdienu pasaulē.
Veicot lielāko daļu automatizācijas uzdevumu, jums būs jāizveido direktoriji, īpaši, instalējot dažādus rīkus un lietojumprogrammas, dublējumus un atjaunojumus. Lai gan jūs varat veikt šos uzdevumus, izmantojot automatizētu skriptu, Ansible nodrošina labāku funkcionalitāti, ļaujot izveidot direktorijus norādītajos resursdatoros.
Šajā apmācībā ir parādīts, kā izmantot faila moduli Ansible, lai izveidotu, noņemtu un modificētu direktoriju atļaujas norādītajiem saimniekiem.
Kā izveidot direktoriju pakalpojumā Ansible
Lai izveidotu direktoriju programmā Ansible, var izmantot kādu no šīm metodēm:
- Neapstrādāta Ansible komanda ar komandu moduli
- Failu modulis Ansible playbook
Lai izveidotu direktoriju mapē Ansible, izmantojot komandu moduli, ievadiet tālāk redzamo komandu:
$ ansible all -m komanda -a "mkdir ~ / backups"Pēc iepriekš minētās komandas ievadīšanas jums vajadzētu iegūt tālāk parādīto izvadi:
Ievadiet atslēgas “home / user /” ieejas frāzi.ssh / id_rsa ':[BRĪDINĀJUMS]: Apsveriet iespēju izmantot faila moduli ar status = directory, nevis palaist 'mkdir'. Ja jums ir jāizmanto komanda, jo fails ir nepietiekams, varat šim komandas uzdevumam pievienot “warn: false” vai iestatīt “command_warnings = False”.cfg, lai atbrīvotos no šī ziņojuma.
35.222.210.12 | IZMAIŅA | rc = 0 >>
Pārbaudiet, vai jūsu Ansible hosts krājumā / etc / ansible / hosts ir pareiza informācija par jūsu attālajiem resursdatoriem.
Lai gan komandu moduli ir vienkārši izmantot vienā Ansible resursdatorā, tas kļūst ļoti neefektīvs, strādājot ar vairākiem resursdatoriem ar dažādiem direktorijiem un uzdevumiem.
Lai novērstu šo trūkumu, mēs izmantosim Ansible file moduli un izveidosim playbook, kurā būs saimnieki, kurus vēlamies izmantot, un direktoriji, kurus vēlamies izveidot.
PIEZĪME: Faila moduli var izmantot arī kā vienu komandu Ansible, taču tas darbojas līdzīgi kā komandu modulis.
Lai izmantotu Ansible playbook, izveidojiet YAML failu un ievadiet šādus ierakstus, lai izveidotu direktoriju:
- saimnieki: visi uzdevumi:- nosaukums: Ansible file module izveidot direktoriju
fails:
ceļš: ~ / dublējumi
stāvoklis: direktorijs
Saglabājiet failu un direktoriju izveidošanai izmantojiet ansible playbook:
ansible-playbook mkdir.ymlTam vajadzētu radīt tādu izvadi kā zemāk, norādot, ka darbības tika veiksmīgi veiktas, izmantojot norādīto atskaņošanas grāmatas failu.
SPĒLĒT [visu] ****************************************** **** *************UZDEVUMS [Faktu apkopošana] ********************************************** ****************************************** **** **
Ievadiet atslēgas “home / user /” ieejas frāzi.ssh / id_rsa ':
labi: [35.222.210.12]
UZDEVUMS [Ansible file module create directory] ******************************************* **********************************
labi: [35.222.210.12]
SPĒLĒJIET PĀRSKATU *************************************************** ***********
35.222.210.12: ok = 2 mainīts = 0 nav sasniedzams = 0 neizdevās = 0 izlaists = 0 izglābts = 0 ignorēts = 0
Kā izveidot vairākus direktorijus ar vienumiem
Iespējamās atskaņošanas grāmatas ļauj arī izveidot vairākus direktorijus, izmantojot YAML faila priekšrakstu with_items.
Piemēram, lai izveidotu trīs pakalpojumu, MySQL, repozitorija un config, dublējumkopijas, varat izveidot uzdevumu, kas parādīts zemāk esošajā YAML failā:
- saimnieki: visi uzdevumi:- nosaukums: Var izveidot vairākus direktorijus with_items
fails:
ceļš: ~ / backups / item
stāvoklis: direktorijs
with_items:
- "mysql"
- "krātuve"
- 'config'
Saglabājiet iepriekš minēto failu un palaidiet to ar ansible-playbook.
$ ansible-playbook mkdir_multi.yml PLAY [viss] *********************************************** ****************************************** **** *************************************************** ****************************************** **** ***UZDEVUMS [Faktu apkopošana] *************************************** *************************************************** *************************************************** ******************************************
Ievadiet atslēgas “home / user /” ieejas frāzi.ssh / id_rsa ':
labi: [35.222.210.12]
UZDEVUMS ****************************************** **** ****************************************** **** *************
mainījies: [35.222.210.12] => (vienums = mysql)
mainījies: [35.222.210.12] => (vienums = krātuve)
mainījies: [35.222.210.12] => (vienums = konfigurācija)
SPĒLĒJIET PĀRSKATU ****************************************** **** ****************************************** **** ***************************************************
35.222.210.12: ok = 2 mainīts = 1 nav sasniedzams = 0 neizdevās = 0 izlaists = 0 izglābts = 0 ignorēts = 0
Iepriekš minētajai playbook vajadzētu izveidot vairākus direktorijus, piemēram, ~ / backups / mysql, ~ / backups / repository un ~ / backups / config.
$ ls -laDirektoriju saraksta izeja ir šāda:
kopā 0drwxrwxr-x. 5 debian debian 51 6. marts 17:26 .
drwx------. 6 debian debian 117. marts 6 17: 26…
drwxrwxr-x. 2 debian debian 6. marts 6 17:26 konfigur
drwxrwxr-x. 2 debian debian 6. marts 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6. marta 6. 17:26 krātuve
Kā iestatīt direktorija atļaujas
Ansible ļauj norādīt direktorija atļaujas, izmantojot režīma direktīvu. Apsveriet šo playbook, kas izveido direktoriju un nosaka atļaujas:
- saimnieki: visiuzdevumi:
- nosaukums: iespējams izveidot direktoriju un iestatīt atļaujas
fails:
ceļš: / dublējumi
stāvoklis: direktorijs
režīms: "u = rw, g = wx, o = rwx"
kļūt: jā
Iepriekš minētajā ierakstā mēs izveidojām direktoriju mapē /. Mums arī bija jākļūst par saknēm, līdz ar to arī ierakstam:.
$ ansible-playbook atļauja.yml PLAY [viss] ******************************************** *************************************************** *************************************************** *************************************************** ***UZDEVUMS [Faktu apkopošana] *************************************** *************************************************** *************************************************** ******************************************
Ievadiet atslēgas “home / user /” ieejas frāzi.ssh / id_rsa ':
labi: [35.222.210.12]
UZDEVUMS [Ansible create directory and set permissions] **************************************** ****************************************** **** ****************************************** **** ****************
mainījies: [35.222.210.12]
SPĒLĒJIET PĀRSKATU ****************************************** **** ****************************************** **** ***************************************************
35.222.210.12: ok = 2 mainīts = 1 nav sasniedzams = 0 neizdevās = 0 izlaists = 0 izglābts = 0 ignorēts = 0
Ja skatīsit izveidotā direktorija atļaujas, redzēsiet:
$ ls -lrt / | grep dublējumusRezultāts ir šāds:
drw - wxrwx. 2 saknes saknes 6. marta 6. 17:36 dublējumiKā rekursīvi mainīt atļaujas direktorijā
Lai rekursīvi mainītu direktorija un tā failu atļaujas, vienkārši norādiet rekursīvo ierakstu, kā parādīts zemāk:
- saimnieki: visiuzdevumi:
- nosaukums: iespējams izveidot direktoriju un iestatīt atļaujas
fails:
ceļš: / dublējumi
stāvoklis: direktorijs
režīms: "u = rw, g = wx, o = rwx"
rekursīvs: jā
kļūt: jā
Kā iestatīt atļaujas vairākos direktorijos
Vairāku direktoriju atļauju iestatīšana pakalpojumā Ansible ir tikpat vienkārša kā dažas ierakstu rindas. Apsveriet šo grāmatu.
- saimnieki: visiuzdevumi:
- nosaukums: Ansible izveidot mutliple direktoriju ar atļaujām
fails:
ceļš: "item.ceļš ”
režīms: "item.režīms "
stāvoklis: direktorijs
with_items:
- ceļš: '~ / backups / mysql', režīms: '0777'
- ceļš: '~ / backups / repository', režīms: '0755'
- ceļš: '~ / backups / config', režīms: '0707'
Kā izdzēst direktoriju
Lai noņemtu direktoriju un visu tā saturu, izmantojot Ansible playbook, norādiet stāvokli kā neesošu, kā parādīts zemāk:
- saimnieki: visiuzdevumi:
- nosaukums: Ansible izdzēst direktoriju
fails:
ceļš: / dublējumi
stāvoklis: nav
kļūt: jā
Šī komanda noņems direktoriju un visus bērnu failus un direktorijus.
PIEZĪME: Pārliecinieties, vai jums ir atļaujas direktorijai, pie kura strādājat.
Kā izveidot laika zīmoga direktoriju
Dažos gadījumos jums var būt nepieciešams izveidot direktoriju ar pievienotu laika zīmogu, kas var būt ļoti noderīgs, it īpaši, veidojot dublējumkopijas. Lai izveidotu direktoriju ar laika zīmogu, mēs varam izmantot mainīgo ansible_date_time.
Apsveriet šo spēļu grāmatu:
- saimnieki: visiuzdevumi:
- nosaukums: Anonīms pievienot laika zīmogu direktorijai
fails:
ceļš: "/ backups / mysql ansible_date_time.datums"
stāvoklis: direktorijs
režīms: "0777"
kļūt: jā
Kad palaidīsit atskaņošanas grāmatu, jums būs direktorijs ar laika zīmogu.
$ ls -lDirektoriju sarakstam jābūt šādam:
kopā 0 drwxrwxrwx. 2 saknes sakne 6. marts 6 18:03 mysql2021-03-06PIEZĪME: Lai izvairītos no kļūdām, vienmēr pārbaudiet YAML failu sintaksi, kuru plānojat izmantot sadaļā Ansible.
Secinājums
Šī apmācība parādīja, ka darbs ar Ansible moduļiem ir ļoti vienkāršs un intuitīvs, vienkāršojot sarežģītu uzdevumu automatizāciju. Izmantojot Ansible file moduli, varat izveidot vienu vai vairākus direktorijus un katram pievienot atļaujas. To pašu moduli var izmantot arī direktorijas noņemšanai. Lai iegūtu papildinformāciju par to, kā izmantot moduli Ansible File, pārbaudiet oficiālo dokumentāciju resursu lapā.