mirror of
https://github.com/ilyamak04/DevOps.git
synced 2025-04-05 23:34:50 +02:00
summary ansible: 3 day
This commit is contained in:
parent
0644996428
commit
7bbad0976b
@ -282,4 +282,59 @@ tasks:
|
|||||||
name: apache2
|
name: apache2
|
||||||
state: present
|
state: present
|
||||||
when: ansible_facts['os_family'] == "Debian"
|
when: ansible_facts['os_family'] == "Debian"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Блоки
|
||||||
|
|
||||||
|
Для чего блоки:
|
||||||
|
|
||||||
|
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** - для всяких разных операций с переменными в плейбуке
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user