и посмотреть медиа
OrangeDevOps - for sysadmins
и посмотреть медиа
Interesting materials and personal notes for sysadmins and DevOps engineers.
Interesting materials and personal notes for sysadmins and DevOps engineers.
Channel with links to useful articles, tutorials and notes on DevOps and system administration. Suitable for everyday work.
Часто в работе с некоторыми инструментами возникают неочевидные #нюансы. Например c #ansible. Используя when надеешься на то что данный таск в playbook не выполнится, если условие не соблюдено, но каждый блок register выполняется независимо от этого условия. Допустим: - name: task1 shell: some command register: var1 when: var2 == 1 - name: task2 shell: some command2 register: var1 when: var2 === 2 То получаем в выводе: "changed": false, "skip_reason": "Conditional result was False" и var1={skip_reason: .... Решение: 1) Делать отдельный ямлик (с register уже в нем),включить его по условию when (если вариантов var2 не много): - include: tasks1.yaml when: var2 == 1 - include: tasks2.yaml when: var2 == 2 2) Использовать set_fact c третьей переменной: - name: task1 shell: some command register: var1 when: var2 == 1 - set_fact: var3="{{ var1 }}" when: var1.changed - name: task2 shell: some command2 register: var1 when: var2 === 2 - set_fact: var3="{{ var1 }}" when: var1.changed
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!