Ansible je jedním z nejlepších dostupných automatizačních nástrojů a nabízí jednoduché, intuitivní a výkonné nástroje pro provádění automatizačních úkolů v moderním světě.
U většiny automatizačních úkolů budete muset vytvořit adresáře, zejména při instalaci různých nástrojů a aplikací, zálohování a obnovení. Ačkoli můžete tyto úkoly provádět pomocí automatizovaného skriptu, poskytuje Ansible lepší funkce, které vám umožňují vytvářet adresáře v určených hostitelích.
V tomto kurzu se dozvíte, jak pomocí modulu souborů Ansible vytvořit, odebrat a upravit oprávnění adresáře pro zadané hostitele.
Jak vytvořit adresář v Ansible
K vytvoření adresáře v Ansible lze použít kteroukoli z následujících metod:
- Surový příkaz Ansible s příkazovým modulem
- Souborový modul v playbooku Ansible
Chcete-li vytvořit adresář v aplikaci Ansible pomocí příkazového modulu, zadejte následující příkaz:
$ ansible all -m příkaz -a "mkdir ~ / backups"Po zadání výše uvedeného příkazu byste měli získat výstup uvedený níže:
Zadejte přístupovou frázi pro klíč '/ home / user /.ssh / id_rsa ':[UPOZORNĚNÍ]: Zvažte použití souborového modulu s adresářem state = namísto spuštění 'mkdir'. Pokud potřebujete použít příkaz, protože soubor je nedostatečný, můžete do tohoto příkazu přidat 'varovat: nepravda' nebo nastavit 'command_warnings = False' v ansible.cfg zbavit se této zprávy.
35.222.210.12 | ZMĚNĚNO | rc = 0 >>
Ověřte, zda váš inventář možných hostitelů v / etc / ansible / hosts obsahuje správné informace o vašich vzdálených hostitelích.
Ačkoli se příkazový modul snadno používá na jednom hostiteli Ansible, stává se velmi neefektivním při práci s více hostiteli s různými adresáři a úkoly.
Abychom čelili této nevýhodě, použijeme modul souborů Ansible a vytvoříme příručku obsahující hostitele, které chceme použít, a adresáře, které si přejeme vytvořit.
POZNÁMKA: Souborový modul lze v Ansible použít také jako jeden příkaz, ale funguje podobně jako příkazový modul.
Chcete-li použít Anbook playbook, vytvořte soubor YAML a vytvořte adresář zadáním následujících položek:
- hostitelé: všechny úkoly:- name: Možný souborový modul pro vytvoření adresáře
soubor:
cesta: ~ / zálohy
stát: adresář
Uložte soubor a pomocí ansible-playbook vytvořte adresáře:
ansible-playbook mkdir.ymlTo by mělo vytvořit výstup, jako je ten níže, což naznačuje, že akce byly úspěšně provedeny pomocí zadaného souboru příručky.
Hrát vše] ********************************************** *************************************************** *************ÚLOHA [Shromažďování faktů] ******************************************** **************************************************** **
Zadejte přístupovou frázi pro klíč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Adresář pro vytvoření možného souborového modulu] ******************************************* ***********************************
ok: [35.222.210.12]
HRAJTE RECAP ************************************************* **************************************************** ***********
35.222.210.12: ok = 2 změněno = 0 nedosažitelné = 0 selhalo = 0 přeskočeno = 0 zachráněno = 0 ignorováno = 0
Jak vytvořit více adresářů s položkami
Ansible playbooks také umožňují vytvořit více adresářů pomocí příkazu with_items v souboru YAML.
Chcete-li například vytvořit zálohy pro tři služby, MySQL, úložiště a konfiguraci, můžete vytvořit úlohu zobrazenou v souboru YAML níže:
- hostitelé: všechny úkoly:- name: Je možné vytvořit více adresářů s_položkami
soubor:
cesta: ~ / backups / item
stát: adresář
with_items:
- 'mysql'
- 'repozitář'
- 'config'
Uložte výše uvedený soubor a spusťte jej pomocí ansible-playbook.
$ ansible-playbook mkdir_multi.yml PLAY [vše] ********************************************** *************************************************** **************************************************** *************************** ***ÚLOHA [Shromáždění faktů] ******************************************** ********************************* * ********************************* * **********************************
Zadejte přístupovou frázi pro klíč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Je možné vytvořit více adresářů s_položkami] ******************************************** *************************************************** *************************************************** *************
změněno: [35.222.210.12] => (item = mysql)
změněno: [35.222.210.12] => (položka = úložiště)
změněno: [35.222.210.12] => (položka = konfigurace)
HRAJTE RECAP ************************************************* *************************************************** **************************************************** ****************************************************
35.222.210.12: ok = 2 změněno = 1 nedosažitelný = 0 selhal = 0 přeskočen = 0 zachráněn = 0 ignorován = 0
Výše uvedená příručka by měla vytvořit více adresářů, například ~ / backups / mysql, ~ / backups / repository a ~ / backups / config.
$ ls -laVýstup seznamu adresářů je uveden níže:
celkem 0drwxrwxr-x. 5 debian debian 51 6. března 17:26 .
drwx------. 6 debian debian 117 3. března 17:26…
drwxrwxr-x. 2 debian debian 6 6. března 17:26 konfigurace
drwxrwxr-x. 2 debian debian 6 6. března 17:26 mysql
drwxrwxr-x. 2 debian debian 6 6. března 17:26 repozitář
Jak nastavit oprávnění pro adresář
Ansible umožňuje určit oprávnění pro adresář pomocí direktivy režimu. Zvažte následující příručku, která vytvoří adresář a nastaví oprávnění:
- hostitelé: všichniúkoly:
- name: Možné vytvoření adresáře a nastavení oprávnění
soubor:
cesta: / zálohy
stát: adresář
režim: "u = rw, g = wx, o = rwx"
stát se: ano
Ve výše uvedené položce jsme vytvořili adresář v /. Také jsme se potřebovali stát kořenem, a proto vstup: ano.
$ ansible-playbook povolení.yml PLAY [vše] ********************************************** *************************************************** **************************************************** *************************** ***ÚLOHA [Shromáždění faktů] ******************************************** ********************************* * ********************************* * **********************************
Zadejte přístupovou frázi pro klíč '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
ÚLOHA [Možné vytvořit adresář a nastavit oprávnění] ****************************************** **************************************************** *************************************************** ****************
změněno: [35.222.210.12]
HRAJ RECAP ************************ **************************************************** *************************** ****************************************************
35.222.210.12: ok = 2 změněno = 1 nedosažitelný = 0 selhal = 0 přeskočen = 0 zachráněn = 0 ignorován = 0
Pokud zobrazíte oprávnění adresáře, který jsme vytvořili, uvidíte následující:
$ ls -lrt / | grep zálohyVýstup je uveden níže:
drw - wxrwx. 2 root root 6 Mar 6 17:36 zálohyJak rekurzivně měnit oprávnění v adresáři
Chcete-li rekurzivně změnit oprávnění adresáře a jeho souborů, jednoduše zadejte rekurzivní položku, jak je znázorněno níže:
- hostitelé: všichniúkoly:
- name: Možné vytvoření adresáře a nastavení oprávnění
soubor:
cesta: / zálohy
stát: adresář
režim: "u = rw, g = wx, o = rwx"
rekurzivní: ano
stát se: ano
Jak nastavit oprávnění ve více adresářích
Nastavení oprávnění pro více adresářů v Ansible je také jednoduché jako několik řádků záznamů. Zvažte následující příručku.
- hostitelé: všichniúkoly:
- name: Je možné vytvořit více adresářů s oprávněními
soubor:
cesta: „položka.cesta "
režim: „položka.režim "
stát: adresář
with_items:
- path: '~ / backups / mysql', mode: '0777'
- path: '~ / backups / repository', mode: '0755'
- path: '~ / backups / config', mode: '0707'
Jak je možné odstranit adresář
Chcete-li odebrat adresář a veškerý jeho obsah pomocí playbooku Ansible, zadejte stav jako nepřítomný, jak je znázorněno níže:
- hostitelé: všichniúkoly:
- name: Možný smazaný adresář
soubor:
cesta: / zálohy
stav: chybí
stát se: ano
Tento příkaz odstraní adresář a všechny podřízené soubory a adresáře.
POZNÁMKA: Ujistěte se, že máte oprávnění pro adresář, na kterém pracujete.
Jak vytvořit adresář s časovým razítkem
V některých případech možná budete muset vytvořit adresář s připojeným časovým razítkem, což může být velmi užitečné, zejména při vytváření záloh. K vytvoření adresáře s časovým razítkem můžeme použít proměnnou ansible_date_time.
Zvažte následující příručku:
- hostitelé: všichniúkoly:
- name: Je možné přidat časové razítko do adresáře
soubor:
path: "/ backups / mysql ansible_date_time.datum"
stát: adresář
režim: „0777“
stát se: ano
Po spuštění playbooku budete mít adresář s časovým razítkem.
$ ls -lVýpis adresáře by měl vypadat takto:
celkem 0 drwxrwxrwx. 2 root root 6 Mar 6 18:03 mysql2021-03-06POZNÁMKA: Abyste se vyhnuli chybám, vždy zkontrolujte syntaxi souboru YAML, kterou chcete použít v Ansible.
Závěr
Tento výukový program vám ukázal, že práce s moduly Ansible je velmi snadná a intuitivní, což zjednodušuje automatizaci složitých úkolů. Pomocí modulu souborů Ansible můžete vytvořit jeden nebo více adresářů a ke každému přidat oprávnění. Stejný modul můžete také použít k odebrání adresáře Další informace o tom, jak používat modul souborů Ansible, najdete v oficiální dokumentaci na stránce zdrojů.