==== Объединение задач в блоки.====
Это позволит установить общие свойства и условие для нескольких задач. Такая форма записи уменьшит количиство строк и упростит восприятие.
Синтаксис записи:
- 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 задачи.
==== when ====
Вы можете использовать условные операторы для выполнения задач, к примеру блок будет выполняться только на операционной системе 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