From 7bbad0976b71a341dbf615cb0ffb5548bc06276e Mon Sep 17 00:00:00 2001 From: ilyamak04 Date: Mon, 30 Sep 2024 23:53:45 +0300 Subject: [PATCH] summary ansible: 3 day --- ansible/ANSIBLE.MD | 57 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/ansible/ANSIBLE.MD b/ansible/ANSIBLE.MD index b2b80a8..2afb8ae 100644 --- a/ansible/ANSIBLE.MD +++ b/ansible/ANSIBLE.MD @@ -282,4 +282,59 @@ tasks: name: apache2 state: present when: ansible_facts['os_family'] == "Debian" -``` \ No newline at end of file +``` + +### Блоки + +Для чего блоки: + +1. **Группировка задач**: Несколько связанных задач можно объединить для удобства. + +2. **Управление ошибками**: Можно задать специальную логику для обработки ошибок с помощью блоков `rescue` (обработчики ошибок) и `always` (выполняются всегда, независимо от успеха или неудачи). + +3. **Условия и циклы**: Можно использовать блоки для использования `when`, `with_items` и тп + +```yml +# Пример с rescue и always +- name: Основной блок + block: + - name: Первая задача + ansible.builtin.shell: echo "Running task 1" + + - name: Вторая задача + ansible.builtin.shell: echo "Running task 2" + + rescue: + - name: Обработка ошибок + ansible.builtin.debug: + msg: "Произошла ошибка!" + + always: + - name: Выполняется всегда + ansible.builtin.debug: + msg: "Этот шаг выполнится всегда, даже если были ошибки." +``` +1. `block`: — основной блок, в котором определяются задачи. Если в нём произойдёт ошибка, выполнение перейдёт в секцию rescue. +2. `rescue`: — блок для обработки ошибок. Выполняется, если одна из задач в блоке завершилась с ошибкой. +3. `always`: — блок для задач, которые должны выполняться всегда, вне зависимости от того, произошла ошибка или нет (например, очистка или уведомления). +4. `rescue` и `always` используются только в сочетании с блоками и относятся к конкретному блоку + + + +### Модули + +// TODO Информацию о модулях выше, перенести в эту главу + +- **Модуль Dedug** - Модуль debug в Ansible используется для вывода отладочной информации во время выполнения плейбуков. Он помогает отображать значения переменных, выводить сообщения. +```yml +- name: Вывести сообщение + ansible.builtin.debug: + msg: "Задача завершена!" +``` +```yml +- name: Вывести значение переменной + ansible.builtin.debug: + var: http_port +``` +- **Модуль set_fact** - для всяких разных операций с переменными в плейбуке +