Инструменты пользователя

Инструменты сайта


linux:ansible:blocks

Объединение задач в блоки.

Это позволит установить общие свойства и условие для нескольких задач. Такая форма записи уменьшит количиство строк и упростит восприятие.

Синтаксис записи:

- 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
linux/ansible/blocks.txt · Последние изменения: 2023/11/27 23:19 — werwolf