Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
Last revision Both sides next revision
automatizace:ansible [2020/12/02 17:03]
automatizace:ansible [2023/08/11 13:12]
tomas [obecná konstrukce]
Line 1: Line 1:
 +===== Odkazy =====
 +[[https://galaxy.ansible.com/|galaxy.ansible.com]] ... verejna knihovna roli\\
  
 +
 +===== Klient =====
 +ansible win -i hosts win_ping\\
 +ansible win -i hosts win_reboot\\
 +ansible win -i hosts wait_for_connection\\
 +ansible localhost -m ping ... otestuje spojeni pro ansible\\
 +ansible localhost -m command -a uptime ... spusti příkaz uptime\\
 +win_regedit\\
 +win_regmerge\\
 +
 +%%ansible-playbook playbook.yaml --syntax-check%%
 +%%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 playbooktags.yml %%--%%tags untagged ... provede jen neotagované tasky\\
 +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\\
 +
 +===== 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\\
 +
 +
 +====vyrazy====
 +promenna.json.tag_list |lower ... (string) vyraz, kde promenna typu json, jeji onjekt tag_list se prevede na male pismen\\
 +selectattr('vg_name', 'equalto', 'vgapplis') ... (list) vybrani podle atributu\\
 +json_query(sum_query) ... (list) - vyraz v jsonu\\
 +list ... (list) - prevede na jednoduchy seznam\\
 +sum ... (cislo) - secte\\
 +first ... (prvek) - prvni polozka seznamu\\
 +length > 0 ... (cislo) velikost seznamu je vetsi nez 0\\
 +is defined ... (boolean) - je definovana\\
 +select('match', '^(eth|wlan)[0-9]+') | list ... vyber ze seznamu\\
 +in LIST ... (boolean) - je prvek obsazen v seznamu?\\
 +
 +====Jinja2 filtry====
 +<code>{{ secrets | to_nice_yaml( width=150, explicit_start=True, explicit_end=True) }}</code> ... naformatuje datovy objekt do yamlu\\