Ansible je jedným z najlepších dostupných automatizačných nástrojov a ponúka jednoduché, intuitívne a výkonné nástroje na vykonávanie automatizačných úloh v modernom svete.
Pre väčšinu automatizačných úloh budete musieť vytvoriť adresáre, najmä pri inštalácii rôznych nástrojov a aplikácií, zálohovaní a obnovovaní. Aj keď tieto úlohy môžete vykonávať pomocou automatizovaného skriptu, Ansible poskytuje lepšiu funkčnosť a umožňuje vám vytvárať adresáre v určených hostiteľoch.
Tento tutoriál vám ukáže, ako používať súborový modul Ansible na vytváranie, odstraňovanie a úpravu povolení adresára pre určených hostiteľov.
Ako je možné vytvoriť adresár
Na vytvorenie adresára v priečinku Ansible je možné použiť ktorúkoľvek z nasledujúcich metód:
- Surový príkaz Ansible s príkazovým modulom
- Súborový modul v playbooku Ansible
Ak chcete vytvoriť priečinok v priečinku Ansible pomocou príkazového modulu, zadajte nasledujúci príkaz:
$ ansible all -m príkaz -a "mkdir ~ / backups"Po zadaní vyššie uvedeného príkazu by ste mali získať výstup uvedený nižšie:
Zadajte prístupovú frázu pre kľúč '/ home / user /.ssh / id_rsa ':[UPOZORNENIE]: Zvážte použitie súborového modulu s adresárom state = namiesto spustenia súboru „mkdir“. Ak potrebujete použiť príkaz, pretože súbor je nedostatočný, môžete do tejto príkazovej úlohy pridať 'warn: false' alebo v odpovedi nastaviť 'command_warnings = False'.cfg, ako sa zbaviť tejto správy.
35.222.210.12 | ZMENENÉ | rc = 0 >>
Overte, či váš inventár možných hostiteľov v priečinku / etc / ansible / hosts obsahuje správne informácie o vašich vzdialených hostiteľoch.
Aj keď sa príkazový modul ľahko používa na jednom hostiteľovi Ansible, stáva sa veľmi neefektívnym pri práci s viacerými hostiteľmi s rôznymi adresármi a úlohami.
Aby sme čelili tejto nevýhode, použijeme modul súborov Ansible a zostavíme príručku obsahujúcu hostiteľov, ktorých chceme používať, a adresáre, ktoré chceme vytvoriť.
POZNÁMKA: Súborový modul možno v Ansible použiť aj ako jeden príkaz, funguje však podobne ako príkazový modul.
Ak chcete používať príručku Ansible, vytvorte súbor YAML a vytvorením adresára zadajte nasledujúce položky:
- hostitelia: všetky úlohy:- name: Možný súborový modul na vytvorenie adresára
spis:
cesta: ~ / zálohy
štát: adresár
Uložte súbor a pomocou ansible-playbook vytvorte adresáre:
ansible-playbook mkdir.ymlTo by malo vytvoriť výstup, ako je tento, ktorý naznačuje, že akcie boli úspešne vykonané pomocou zadaného súboru príručky.
HRAŤ [všetky] *********************************************** *********************************** *************ÚLOHA [Zhromažďovanie faktov] ******************************************* *************************************************** **
Zadajte prístupovú frázu pre kľúč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Vytvorte adresár možného modulu súborov] ******************************************* ***********************************
ok: [35.222.210.12]
HRAŤ RECAP ************************************************* *************************************************** ***********
35.222.210.12: ok = 2 zmenené = 0 nedosiahnuteľné = 0 zlyhalo = 0 preskočené = 0 zachránené = 0 ignorované = 0
Ako vytvoriť viac adresárov s položkami
Prípadné príručky na čítanie vám tiež umožňujú vytvoriť viac adresárov pomocou príkazu with_items v súbore YAML.
Napríklad na vytvorenie záloh pre tri služby, MySQL, úložisko a konfiguráciu, môžete vytvoriť úlohu zobrazenú v súbore YAML nižšie:
- hostitelia: všetky úlohy:- name: Je možné vytvoriť viac adresárov s_položkami
spis:
cesta: ~ / backups / item
štát: adresár
with_items:
- 'mysql'
- 'Úložisko'
- 'config'
Uložte vyššie uvedený súbor a spustite ho pomocou ansible-playbook.
$ ansible-playbook mkdir_multi.yml HRAŤ [všetko] ********************************************* ************************************************ *************************************************** *************************************************** ***ÚLOHA [Zhromažďovanie faktov] ******************************************* *************************************************** *********************************** ******************************************
Zadajte prístupovú frázu pre kľúč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Je možné vytvoriť viac adresárov s_ položkami] ******************************************** ************************************************ *************************************************** *************
zmenené: [35.222.210.12] => (položka = mysql)
zmenené: [35.222.210.12] => (položka = úložisko)
zmenené: [35.222.210.12] => (položka = konfigurácia)
HRAŤ RECAP *********************** * ******************************************** *************************************************** ***************************************************
35.222.210.12: ok = 2 zmenené = 1 nedosiahnuteľný = 0 zlyhal = 0 preskočený = 0 zachránený = 0 ignorovaný = 0
Vyššie uvedená príručka by mala vytvoriť viac adresárov, napríklad ~ / backups / mysql, ~ / backups / repository a ~ / backups / config.
$ ls -laVýstup zoznamu adresárov je uvedený nižšie:
spolu 0drwxrwxr-x. 5 debian debian 51 mar 6 6 17:26 .
drwx------. 6 debian debian 117 3. marca 17:26…
drwxrwxr-x. 2 debian debian 6 6. marca 17:26 konfigur
drwxrwxr-x. 2 debian debian 6 mar 6 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 6. marca 17:26 úložisko
Ako nastaviť povolenia pre adresár
Ansible vám umožňuje určiť oprávnenie pre adresár pomocou direktívy režimu. Zvážte nasledujúcu príručku, ktorá vytvára adresár a nastavuje oprávnenia:
- hostitelia: všetciúlohy:
- name: Možné vytvorenie adresára a nastavenie povolení
spis:
cesta: / zálohy
štát: adresár
režim: "u = rw, g = wx, o = rwx"
stať sa: áno
Vo vyššie uvedenom zázname sme vytvorili adresár v /. Potrebovali sme sa tiež stať koreňom, a teda vstupom „áno“.
$ povolenie pre zodpovedajúcu knihu.yml HRAŤ [všetko] ********************************************* ************************************************ *************************************************** *************************************************** ***ÚLOHA [Zhromažďovanie faktov] ******************************************* *************************************************** *********************************** ******************************************
Zadajte prístupovú frázu pre kľúč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Možné vytvoriť adresár a nastaviť oprávnenie] ***************************************** *************************************************** *************************************************** ****************
zmenené: [35.222.210.12]
HRAŤ RECAP ************************************************ ******************************************** ******************************************** ***************************************************
35.222.210.12: ok = 2 zmenené = 1 nedosiahnuteľný = 0 zlyhal = 0 preskočený = 0 zachránený = 0 ignorovaný = 0
Ak zobrazíte povolenia adresára, ktorý sme vytvorili, uvidíte nasledujúce:
$ ls -lrt / | grep zálohyVýstup je uvedený nižšie:
drw - wxrwx. 2 root root 6 Mar 6 17:36 zálohyAko rekurzívne meniť povolenia v adresári
Ak chcete rekurzívne zmeniť oprávnenie adresára a jeho súborov, jednoducho zadajte rekurzívny záznam, ako je uvedené nižšie:
- hostitelia: všetciúlohy:
- name: Možné vytvorenie adresára a nastavenie povolení
spis:
cesta: / zálohy
štát: adresár
režim: "u = rw, g = wx, o = rwx"
rekurzívne: áno
stať sa: áno
Ako nastaviť povolenia vo viacerých adresároch
Nastavenie povolení pre viac adresárov v aplikácii Ansible je tiež také jednoduché ako niekoľko riadkov položiek. Zvážte nasledujúcu príručku.
- hostitelia: všetciúlohy:
- name: Je možné vytvoriť viacnásobný adresár s oprávneniami
spis:
cesta: „položka.cesta "
režim: „položka.režim "
štát: adresár
with_items:
- path: '~ / backups / mysql', mode: '0777'
- path: '~ / backups / repository', mode: '0755'
- path: '~ / backups / config', mode: '0707'
Ako je možné odstrániť adresár
Ak chcete odstrániť adresár a všetok jeho obsah pomocou príručky Ansible, uveďte stav ako neprítomný, ako je uvedené nižšie:
- hostitelia: všetciúlohy:
- name: Možné vymazanie adresára
spis:
cesta: / zálohy
stav: neprítomný
stať sa: áno
Tento príkaz odstráni adresár a všetky podradené súbory a adresáre.
POZNÁMKA: Uistite sa, že máte oprávnenie pre adresár, na ktorom pracujete.
Ako vytvoriť adresár s časovou pečiatkou
V niektorých prípadoch bude možno potrebné vytvoriť adresár s pripojenou časovou značkou, čo môže byť veľmi užitočné, najmä pri vytváraní záloh. Na vytvorenie adresára s časovou pečiatkou môžeme použiť premennú ansible_date_time.
Zvážte nasledujúcu príručku:
- hostitelia: všetciúlohy:
- name: Možné pridať časovú pečiatku do adresára
spis:
cesta: "/ backups / mysql ansible_date_time.dátum"
štát: adresár
režim: „0777“
stať sa: áno
Po spustení príručky budete mať adresár s časovou pečiatkou.
$ ls -lZoznam adresárov by mal byť uvedený nižšie:
spolu 0 drwxrwxrwx. 2 root root 6 Mar 6 18:03 mysql2021-03-06POZNÁMKA: Aby ste sa vyhli chybám, vždy skontrolujte syntax súboru YAML, ktorú chcete použiť v aplikácii Ansible.
Záver
Tento tutoriál vám ukázal, že práca s modulmi Ansible je veľmi jednoduchá a intuitívna, čo uľahčuje automatizáciu zložitých úloh. Pomocou modulu súborov Ansible môžete vytvoriť jeden alebo viac adresárov a ku každému pridať oprávnenie. Rovnaký modul môžete použiť aj na odstránenie adresára. Ďalšie informácie o tom, ako používať modul súborov Ansible, nájdete v oficiálnej dokumentácii na stránke zdrojov.