Это позволит установить общие свойства и условие для нескольких задач. Такая форма записи уменьшит количиство строк и упростит восприятие.
Синтаксис записи:
- name: Block Name
block:
- name: Task 1
...
- name: Task 2
...
- name: Task 3
...
become: true
become_user: root
ignore_errors: yes
Пример:
--- - name: user hosts: demo tasks: - name: PreConfig block # Название блока block: - name: Create user # Первая задача vars: user: werwolf user: name: "{{ user }}" state: present register: error # Регистрируем переменную для ошибока - name: Install curl # Вторая задача apt: name: curl update-cache: yes register: error become: true # общий для всего блока вызов sudo rescue: # Ловим ошибку, аналог catche - name: Some error print debug: var: error # Вывод ошибки из переменной always: # Аналог finaly - name: Reboot debug: msg: "Rebooting......."
в данном примере будет выполнены 2 задачи.
Вы можете использовать условные операторы для выполнения задач, к примеру блок будет выполняться только на операционной системе CentOS
- name: Block Name
block:
- name: Task 1
...
- name: Task 2
...
- name: Task 3
...
when: ansible_facts['distribution'] == 'CentOS'
become: true
become_user: root
ignore_errors: yes