Možné

Ako používať modul Ansible Register

Ako používať modul Ansible Register
V Ansible môžete na svojich hostiteľoch Ansible spustiť akýkoľvek príkaz shellu, hostiteľov, ktorých budete konfigurovať s Ansible. Tieto príkazy shellu môžu mať výstupy. V predvolenom nastavení je výstup ignorovaný. Ak chcete výstup uložiť do premennej a použiť ho neskôr, môžete použiť Ansible Registrovať modul. Tento článok vám ukáže, ako používať Ansible Registrovať modul na uloženie výstupu príkazu do premennej a prístup k nemu neskôr v playbooku Ansible.

Predpoklady

Ak si chcete vyskúšať príklady v tomto článku, musíte:

1) Nechajte si na svojom počítači nainštalovať Ansible.

2) Nechajte hostiteľa Ubuntu nakonfigurovať pre automatizáciu Ansible.

Existuje veľa článkov o LinuxHint venovaných inštalácii Ansible a konfigurácii hostiteľov pre automatizáciu Ansible. Ak je to potrebné, môžete si tieto články pozrieť.

Nastavenie adresára projektu

Predtým, ako budete pokračovať, vytvorte nový adresár projektu Ansible, aby ste mali trochu poriadok.

Vytvorenie adresára projektu registrácia-demo / a všetky požadované podadresáre (vo vašom aktuálnom pracovnom adresári), spustite nasledujúci príkaz:

$ mkdir -pv register-ukážka / príručky

Po vytvorení adresára projektu prejdite do adresára projektu takto:

$ cd register-demo /

Vytvor hostitelia inventárny súbor, a to nasledovne:

$ nano hostitelia

Pridajte IP hostiteľa alebo názov DNS vášho hostiteľa Ubuntu do súboru inventára (jeden hostiteľ na riadok), ako je to znázornené na snímke obrazovky nižšie.

Tu som pridal svoj Ubuntu 20.04 hostiteľa LTS vm3.nodekite.com v ubuntu20 skupina.

Po dokončení uložte súbor stlačením + X, nasledovaný Y a .

Vytvorte konfiguračný súbor Ansible zodpovedné.porov v adresári projektu takto:

$ nano zodpovedné.porov

Ďalej zadajte nasledujúce riadky do zodpovedné.porov spis:

[predvolené hodnoty]
inventár = hostitelia
host_key_checking = False

Po dokončení uložte súbor zodpovedné.porov súbor stlačením + X, nasledovaný Y a .

Teraz skúste pomocou príkazu ping na hostiteľa Ubuntu:

$ ansible ubuntu20 -u ansible -m ping

Ako vidíte, môj Ubuntu 20.04 hostiteľ vm3.nodekite.com je prístupný.

Príklad 1: Základy

V tomto príklade vám ukážem niektoré zo základných možností Registrovať modul. Použijem Ansible na vygenerovanie náhodného hesla v mojom Ubuntu 20.04 hostiteľ pomocou pwgen príkaz, uložte heslo do premennej pomocou Registrovať modul a vytlačte heslo na obrazovku.

Najskôr vytvorte nový playbook generate_pass.yaml v knihy o hre / adresár takto:

$ nano playbooks / generate_pass.yaml

Zadajte nasledujúce riadky do generate_pass.yaml spis:

- hostitelia: ubuntu20
užívateľ: zodpovedný
stať sa: Pravda
úlohy:
- názov: Skontrolujte, či je nainštalovaný program pwgen
výstižný:
meno: pwgen
stav: prítomný
update_cache: Pravda
- name: Generovať heslo
škrupina: pwgen -N 1 -s 30
register: mypass
- name: Vytlačí vygenerované heslo
ladenie:
msg: "Heslo je mypass"

Po dokončení stlačte + X, nasledovaný Y a , zachrániť generate_pass.yaml spis.

Nasledujúci riadok informuje Ansible o spustení príručky generate_pass.yaml na každom hostiteľovi v ubuntu20 skupina. V mojom prípade sa hracia kniha spustí na hostiteľovi vm3.nodekite.com.

V tejto príručke si zadefinujem tri úlohy.

Prvá úloha zabezpečí, že pwgen balík je nainštalovaný.

Druhá úloha vygeneruje náhodné 30-znakové heslo pomocou znaku pwgen príkaz. Použijem Registrovať modul na uloženie vygenerovaného hesla do mypass premenná.

Tretia úloha vytlačí mypass premenná pomocou možnosti Ansible ladiť modul.

Spustite príručku generate_pass.yaml pomocou nasledujúceho príkazu:

$ ansible-playbook playbooks / generate_pass.yaml

Ako vidíte, príručka sa úspešne rozbehla. Bolo tiež vygenerované heslo.

Ale prečo premenná mypass vytlačte toľko položiek?

No tá premenná mypass je objekt, ktorý obsahuje niektoré dôležité vlastnosti.

Najdôležitejšie vlastnosti každej z Registrovať premenné sú nasledovné:

cmd - Príkaz, ktorý sa spustil na vygenerovanie výstupu.

stdout - Výstup príkazu.

stderr - Chybný výstup príkazu.

začať - Dátum a čas, kedy sa príkaz začal vykonávať.

koniec - Dátum a čas, kedy sa príkaz dokončil.

delta - Čas potrebný na spustenie príkazu. To je rozdiel medzi koniec a začať vlastnosti.

stdout_lines - Pole obsahujúce každý výstupný riadok príkazu. Rovnaké ako stdout, ale stdout oddeľuje riadky pomocou znakov nového riadku (\ n) namiesto polí.

stderr_lines -  Pole obsahujúce každý chybový výstupný riadok príkazu. Rovnaké ako stderr, ale stderr oddeľuje riadky pomocou znakov nových riadkov (\ n) namiesto polí.

Ak chcete iba vytlačiť / získať prístup k reťazcu hesla (čo je veľmi pravdepodobné), môžete vytlačiť / získať prístup k reťazcu stdout majetok mypass premennej v príručke, ako je to vyznačené na snímke obrazovky nižšie.

$ nano playbooks / generate_pass.yaml

Po dokončení spustite príručku generate_pass.yaml ešte raz. Vytlačí sa iba reťazec hesla, ako vidíte na snímke obrazovky nižšie.

To sa týka základov možného Registrovať modul.

Príklad 2: Uloženie obsahu adresára

V tomto príklade vám ukážem, ako uložiť obsah adresára do premennej pomocou nástroja Ansible Registrovať modulu, ako aj to, ako nad nimi iterovať.

Najskôr vytvorte nový playbook get_dir_contents.yaml v knihy o hre / adresár.

$ nano playbooks / get_dir_contents.yaml

Ďalej zadajte nasledujúce riadky do poľa get_dir_contents.yaml príručka:

- hostitelia: ubuntu20
užívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Zoznam všetkých súborov a adresárov v priečinku / home / ansible
shell: ls / home / ansible
register: dir_contents
- name: Vytlačí obsah adresára pomocou slučiek
ladenie:
msg: "item"
slučka: „dir_contents.stdout_lines "

Po dokončení stlačte + X, nasledovaný Y a , zachrániť generate_pass.yaml spis.

V tejto príručke si zadefinujem dve úlohy.

V prvej úlohe je uvedený všetok obsah súboru / home / ansible adresár a uloží ich do priečinka dir_obsah premenná.

Druhou úlohou sa vytlačí dir_obsah premenná.

Spustiť get_dir_contents.yaml playbook, nasledovne.

$ ansible-playbook playbooks / get_dir_contents.yaml

Ako vidíte, stdout_lines vlastnosť uložila obsah adresára ako pole. The stdout vlastnosť je tiež uložená v obsahu adresára. Tieto vlastnosti sú oddelené znakmi nového riadku (\ n). V tomto príklade stdout_lines s majetkom sa ľahko pracuje.

Ďalej iterujte obsah adresára pomocou slučky.

Ak to chcete urobiť, otvorte get_dir_contents.yaml playbook a zmeňte druhú úlohu tak, ako je to vyznačené na snímke obrazovky nižšie.

$ nano playbooks / get_dir_contents.yaml

Tu iterujem dir_obsah.stdout_lines pole pomocou slučky a tlač položiek poľa pomocou Ansible ladiť modul. V tejto úlohe položka premenná je premenná slučky používaná na iteráciu nad prvkami poľa.

Spustiť get_dir_contents.yaml príručky, a to nasledovne:

$ ansible-playbook playbooks / get_dir_contents.yaml

Ako vidíte, obsah / home / ansible adresár sú vytlačené na obrazovke.

Príklad 3: Zálohovanie adresára

V tomto príklade vám ukážem, ako zálohovať adresár pomocou nástroja Ansible Registrovať, spis, a kópia modulov.

Najskôr vytvorte nový playbook backup_home_dir.yaml v knihy o hre / adresár takto:

$ nano playbooks / backup_home_dir.yaml

Ďalej zadajte nasledujúce riadky do poľa backup_home_dir.yaml spis.

- hostitelia: ubuntu20
užívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Získajte domovský adresár / home / ansible content
shell: ls / home / ansible
register: dir_contents
- name: Vytvorte nový adresár / tmp / ansible
spis:
cesta: / tmp / ansible
štát: adresár
- name: Záložný domovský adresár / home / ansible to / tmp / ansible
kópia:
src: / home / ansible / item
cieľ: / tmp / ansible /
remote_src: Pravda
slučka: „dir_contents.stdout_lines

Po dokončení stlačte + X, nasledovaný Y a , zachrániť backup_home_dir.yaml spis.

V tejto príručke si zadefinujem tri úlohy.

Prvá úloha ukladá obsah súboru / home / ansible adresár (adresár, ktorý budem zálohovať) v priečinku dir_obsah premenná pomocou možnosti Ansible Registrovať modul.

Druhá úloha vytvorí nový adresár / tmp / ansible pomocou Ansible spis modul. Toto je adresár, do ktorého sa bude zálohovať.

Tretia úloha prechádza slučkou dir_obsah.stdout_lines pole a používa Ansible kópia modul skopírovať každý adresár do priečinka / tmp / ansible / adresár.

Spustiť backup_home_dir.yaml príručky, a to nasledovne:

$ ansible-playbook playbooks / backup_home_dir.yaml

Ako vidíte, na mojom Ubuntu 20.04 hostiteľa LTS, zálohovanie bolo úspešné.

Príklad 4: Spustenie alebo preskočenie úloh

V tomto príklade vám ukážem, ako spustiť alebo preskočiť úlohy pomocou premennej, ktorú ste zaregistrovali, v závislosti od zaregistrovanej premennej Registrovať modul.

Najskôr vytvorte nový playbook register_conditions.yaml v knihy o hre / adresár takto:

$ nano playbooks / register_conditions.yaml

Ďalej zadajte nasledujúce riadky do poľa register_conditions.yaml spis.

- hostitelia: ubuntu20
užívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Zoznam obsahu adresára
shell: ls / home / ansible / test3
register: dir_contents
- name: Skontrolujte, či je adresár prázdny
ladenie:
msgstr "" Adresár je prázdny.„
keď: dir_contents.stdout == ""

Po dokončení stlačte + X, nasledovaný Y a , zachrániť register_conditions.yaml spis.

V tejto príručke som si zadefinoval dve úlohy.

Prvá úloha ukladá obsah súboru / home / ansible / test3 adresár v priečinku dir_obsah premenná.

Druhá úloha kontroluje, či dir_obsah.stdout je prázdny reťazec alebo či je adresár / home / ansible / test3 je prázdny. Ak je adresár prázdny, správa Adresár je prázdny bude tlačiť.

Spustiť register_conditions.yaml príručky, a to nasledovne:

$ ansible-playbook playbooks / register_conditions.yaml

Ako vidíte, príručka sa úspešne rozbehla.

Od adresára / home / ansible / test3 je prázdny, príručka vytlačila správu Adresár je prázdny.

Ďalej vytvorte nový súbor v priečinku / home / ansible / test3 adresár.

$ touch test3 / myfile

Keďže / home / ansible / test3 adresár už nie je prázdny, úloha Skontrolujte, či je adresár prázdny je preskočené, ako vidíte na snímke obrazovky nižšie.

$ ansible-playbook playbooks / register_conditions.yaml

Záver

To možné Registrovať modul je veľmi užitočný pre automatizáciu servera. Tento článok vám ukázal základné informácie o Registrovať modulu vrátane príkladov použitia možnosti Ansible Registrovať modul na ukladanie a zálohovanie adresárov a na spúšťanie adresárových úloh.

Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...