Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
automatizace:ansible [2023/06/13 13:45]
tomas [Klient]
automatizace:ansible [2023/08/11 13:40] (current)
tomas [Klient]
Line 1: Line 1:
-====Odkazy====+===== Odkazy =====
 [[https://galaxy.ansible.com/|galaxy.ansible.com]] ... verejna knihovna roli\\ [[https://galaxy.ansible.com/|galaxy.ansible.com]] ... verejna knihovna roli\\
  
  
-====Klient====+===== Klient =====
 ansible win -i hosts win_ping\\ ansible win -i hosts win_ping\\
 ansible win -i hosts win_reboot\\ ansible win -i hosts win_reboot\\
Line 15: Line 15:
 %%ansible-playbook --connection=local --inventory 127.0.0.1, playbook.yml -e ansible_python_interpreter=/usr/bin/python3%% ... spusti playbook lokalne na mistnim pocitaci, nastavi python3 misto python, kdyz jsou nainstalovane oba\\ %%ansible-playbook --connection=local --inventory 127.0.0.1, playbook.yml -e ansible_python_interpreter=/usr/bin/python3%% ... spusti playbook lokalne na mistnim pocitaci, nastavi python3 misto python, kdyz jsou nainstalovane oba\\
 %%ansible-playbook -i inventory/hosts --limit testserver playbook1.yml%% ... Spusteni playbooku na omezem seznamu z inventare\\ %%ansible-playbook -i inventory/hosts --limit testserver playbook1.yml%% ... Spusteni playbooku na omezem seznamu z inventare\\
-ansible-playbook playbooktags.yml %%--%%tags untagged ... provede jen neotagované tasky\\+ansible-playbook playbooktags.yml %%--%%tags untagged,tag1 ... provede jen neotagované tasky a tasky s tagem tag1\\
 ansible-playbook playbooktags.yml %%--%%skip-tags=install,mydir ... vynechá otagované tásky tagy install, mydir\\ ansible-playbook playbooktags.yml %%--%%skip-tags=install,mydir ... vynechá otagované tásky tagy install, mydir\\
 ansible-playbook playbooktags.yml %%--%%extra-vars action=install ... nadefinuje, nebo přepíše proměnnou/fakt\\ ansible-playbook playbooktags.yml %%--%%extra-vars action=install ... nadefinuje, nebo přepíše proměnnou/fakt\\
  
 +===== playbooky =====
 +==== obecná konstrukce běhu - play ====
 +name:\\
 +hosts: ... seznam nodů, nebo grup, na které se budou tasky aplikovat\\
 +serial: 1 ... úroveň paralelizace\\
 +ignore_unreachable: true ... přeskočení nedostupných nodů\\
 +vars: ... proměnné\\
 +tasks: ... seznam tasků\\
 +handlers: ... handlery - akce, co se podmíněně spustí při konkrétních změnách v tasku\\
 +
 +==== task ====
 +=== nepovinné, dpolňující parametry ===
 +name: ... jméno tásku\\
 +tag: ... jméno tagu - tagy se označuje, co se provede a co ne\\
 +when: ... podmínka, za jaké se task provede\\
 +register: command_result ... proměnná, do které se uplží výstup tásku\\
 +delegate_to: ... určí se node, na kterém se task provede, například localhost\\
 +vars: ... proměnné pro task\\
 +ignore_errors: true ... task se považuje za úspěšný i když nastanou chyby\\
 +ignore_unreachable: false ... úspěch, i když je node nedostupný\\
 +failed_when: "'FAILED' in command_result.stderr" ... informace, kdy se považuje task jako neúspěšný\\
 +changed_when: "bass_result.rc != 2" ... definuje, kdy se task považuje za změnu konfigurace\\
 +
 +=== typy tasku ===
 +debug: ... výpis progměnných\\
 +set_fact: ... nastavení proměnných\\
 +shell: ... provedení akce v shellu\\
 +fail: ... ukončení běhu\\
 +import_tasks: ... načte tasky z jiného souboru\\
 +include_role: ... vloží roli (playbooky definované v extra adresáři, něco jako modul, nebo knihovna)\\
 +uri: ... HTTP/HTTPS volání\\
 +block: ... blok tasků, více v sekci block\\
 +tempfile: ... vytvoří dočasný soubor, sám se smaže po konci\\
 +read_csv: ... načte csv soubor\\
 +
 +=== blok ===
 +block: ... vytvoří blok tasku\\
 +always: ... provede se vždy, i když se blok přeruší z důvodu chyby, třeba čištění\\
 +rescue: ... provede se, když je chyba\\
 +
 +handler: ... volání tasku jen když se provede změna\\
  
  
Line 32: Line 73:
 select('match', '^(eth|wlan)[0-9]+') | list ... vyber ze seznamu\\ select('match', '^(eth|wlan)[0-9]+') | list ... vyber ze seznamu\\
 in LIST ... (boolean) - je prvek obsazen v seznamu?\\ in LIST ... (boolean) - je prvek obsazen v seznamu?\\
-====playbooky====+
 ====Jinja2 filtry==== ====Jinja2 filtry====
 <code>{{ secrets | to_nice_yaml( width=150, explicit_start=True, explicit_end=True) }}</code> ... naformatuje datovy objekt do yamlu\\ <code>{{ secrets | to_nice_yaml( width=150, explicit_start=True, explicit_end=True) }}</code> ... naformatuje datovy objekt do yamlu\\