Яке значення повідомляє про відповідне завдання про те, що щось змінилося?


20

У мене є завдання, яке перевіряє, чи мій процес прослуховує порт 8080, і лише тоді, коли код виходу не дорівнює нулю, я б запустив failповідомлення.

Коли служба запускається, вона повідомляє, що статус змінився. Я хочу, щоб він сказав ok. Що changedнасправді означає статус Ansible?

Відповіді:


11

Все, що залежить від чогось від цілі, отримає статус "змінено" при виконанні, навіть якщо це лише команда оболонки, щоб щось повторити.

Щоб придушити статус "зміненого", ви можете додати до завдання наступний рядок:

changed_when: false

Це та інші релевантні речі перелічені на цій довідковій сторінці документа .


27

Відповідальні завдання повинні бути ідентичними . Напр. якщо завдання нічого не змінює, воно має повернутися okзамість changed. Більшість модулів і вбудована завдання вже, але для таких завдань, як commandі shellви повинні допомогти анзіблю небагато.

Для завдання, яке виконує суто перевірку і нічого не змінює, слід додати:

changed_when: False
always_run: yes

Останнє дозволяє виконувати завдання навіть у режимі перевірки .

Для повноти такі завдання зазвичай поєднуються з іншими, що здійснюють фактичну модифікацію, наприклад:

- command: check command that returns true when no change needed
  register: result
  changed_when: False
  always_run: yes
- command: modify command
  when: result.rc != 0

2
це має перевірити відповідь
mastier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.