Spec-Zone.ru › Ansible 2.6

Режим проверки («сухой запуск»)

Новая версия 1.1.

  • Включение или отключение режима проверки для задач
  • Информация о режиме проверки в переменных
  • Отображение различий с --diff

При выполнении ansible-playbook с --check он не внесёт никаких изменений на удалённые системы. Вместо этого любой модуль, поддерживающий режим «проверки» (который содержит большинство основных модулей, но не обязательно все), сообщит о внесённых изменениях, а не произведёт их. Другие модули, не поддерживающие режим проверки, также не будут производить никаких действий, но не будут сообщать о внесённых изменениях.

Режим проверки — это просто симуляция, и если у вас есть шаги, использующие условные операторы, которые зависят от результатов предыдущих команд, он может быть менее полезным. Однако он отлично подходит для задач управления конфигурацией на одном узле.

Пример:

ansible-playbook foo.yml --check

Включение или отключение режима проверки для задач

Новая версия 2.2.

Иногда вам может потребоваться изменить поведение режима проверки отдельных задач. Это делается с помощью параметра check_mode, который можно добавить к задачам.

Существует два варианта:

  1. Вынудить задачу выполнить режим проверки, даже если playbook вызван без --check. Это называется check_mode: yes
  2. Вынудить задачу выполнить обычный режим и внести изменения в систему, даже если playbook вызван с --check. Это называется check_mode: no

Примечание

До версии 2.2 существовал только эквивалент check_mode: no. Обозначение для этого было always_run: yes

Вместо yes/no можно использовать выражение Jinja2, как в when.

Пример:

tasks:
  - name: this task will make changes to the system even in check mode
    command: /something/to/run --even-in-check-mode
    check_mode: no

  - name: this task will always run under checkmode and not change the system
    lineinfile:
        line: "important config"
        dest: /path/to/myconfig.conf
        state: present
    check_mode: yes

Выполнение отдельных задач с check_mode: yes может быть полезно для написания тестов для модулей Ansible, либо для проверки самого модуля, либо для проверки условий, при которых модуль вносит изменения. С register (см. Условные операторы) вы можете проверить потенциальные изменения.

Информация о режиме проверки в переменных

Новая версия 2.1.

Если вы хотите пропустить или проигнорировать ошибки некоторых задач в режиме проверки, вы можете использовать магическую булеву переменную ansible_check_mode, которая будет установлена в True во время режима проверки.

Пример:

tasks:

  - name: this task will be skipped in check mode
    git:
      repo: ssh://git@github.com/mylogin/hello.git
      dest: /home/mylogin/hello
    when: not ansible_check_mode

  - name: this task will ignore errors in check mode
    git:
      repo: ssh://git@github.com/mylogin/hello.git
      dest: /home/mylogin/hello
    ignore_errors: "{{ ansible_check_mode }}"

Отображение различий с --diff

Новая версия 1.1.

Параметр --diff для ansible-playbook отлично работает с --check (подробно описано выше), но также может быть использован самостоятельно. При указании этого флага и поддержки этого модулем, Ansible вернёт внесённые изменения или, если используется с --check, изменения, которые должны были быть внесены. Это в основном используется в модулях, которые манипулируют файлами (т. е. шаблонами), но и другие модули могут отображать информацию «до и после» (т. е. пользователя). Поскольку функция diff генерирует большое количество вывода, лучше всего использовать её при проверке одного узла за раз. Например:

ansible-playbook foo.yml --check --diff --limit foo.example.com

Новая версия 2.4.

Параметр --diff может раскрыть конфиденциальную информацию. Этот параметр можно отключить для задач, указав diff: no

Пример:

tasks:
  - name: this task will not report a diff when the file changes
    template:
      src: secret.conf.j2
      dest: /etc/secret.conf
      owner: root
      group: root
      mode: '0600'
    diff: no

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_checkmode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API