Ansible

https://adamj.eu/tech/2015/05/18/making-ansible-a-bit-faster/

WTF

import_tasks vs include_tasks

https://stackoverflow.com/a/64000776/1108919

Az import_tasks már inicializálási időben betölt minden hozzá kapcsolódó változót, függetlenül attól, hogy az a hívás egyáltalán meg lesz-e hívva.

Az import-ált task vars/main.yml-ben definiált változói global-ok lesznek, így az include-oltaké nem!

template kiértékelés

kb. ha az nem set_fact, akkor maga a template került „eltárolásra”

emiatt nem tud egy dict eleme önmagának egy másik elemére hivatkozni a vars-ban

ha a when-ben is használunk template kifejezést, és történetesen a when egy block-hoz kötődik, ott a template annyiszor fog kiértékelődni, ahágy lépésből áll a block ÉS ha kiértékelés eredménye menetközben megváltozik, a block többi eleme lehet, hogy nem kerül futtatásra!

- set_fact: foo: yes - when: "{{ foo }}" block: - set_fact: foo: no - debug: msg: 'Ez soha nem lesz lefuttatva...'

Tagek

Ha egy include_* skippelésre kerül, a hihagyott role-ok/task-ok tag-jei se lesznek bejárva, így nem lehet rájuk hivatkozni se a --tags parancssori paraméterrel.

Ellenben ha import_*-ot használunk, az „előre bejárás” okán ismertek lesznek belső tag-ek is.

Sémák

https://github.com/ansible-community/schemas/tree/main/f