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

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


linux:ansible:async

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:ansible:async [2023/11/30 14:08]
werwolf [Асинхронность в Ansible]
linux:ansible:async [2023/11/30 14:22] (текущий)
werwolf
Строка 17: Строка 17:
 Устанавливаем значение poll на 60. Давайте добавим еще один таск  для мониторинга,​ например,​ баз данных и дадим ему шесть минут на выполнение и poll каждые 60 секунд. Устанавливаем значение poll на 60. Давайте добавим еще один таск  для мониторинга,​ например,​ баз данных и дадим ему шесть минут на выполнение и poll каждые 60 секунд.
  
-<​code>​+<​code ​yaml>
 name: Deploy WebApp name: Deploy WebApp
 hosts: webhost1 hosts: webhost1
Строка 46: Строка 46:
 Для этого сначала нужно зарегистрировать результат тасок в переменной. Итак, в этом случае мы регистрируем результат первой таски, которая отслеживает веб-приложение,​ в переменную с именем ''​webapp_result''​. Также регистрируем результат второй таски, которая заключается в мониторинге базы данных,​ в переменную ''​db_result''​. Для этого сначала нужно зарегистрировать результат тасок в переменной. Итак, в этом случае мы регистрируем результат первой таски, которая отслеживает веб-приложение,​ в переменную с именем ''​webapp_result''​. Также регистрируем результат второй таски, которая заключается в мониторинге базы данных,​ в переменную ''​db_result''​.
  
-<​code>​+<​code ​yaml>
 name: Deploy WebApp name: Deploy WebApp
 hosts: webhost1 hosts: webhost1
Строка 63: Строка 63:
 Так мы получим новую таску до конца, которая называется проверка статуса таска. Для проверки статуса таски используем модуль ''​async_status''​. Так мы получим новую таску до конца, которая называется проверка статуса таска. Для проверки статуса таски используем модуль ''​async_status''​.
  
-<​code>​+<​code ​yaml>
 name: Deploy WebApp name: Deploy WebApp
 hosts: webhost1 hosts: webhost1
Строка 91: Строка 91:
 Нам нужно добавить плей в плейбук,​ который будет мониторить веб-апку в течении 5 минут, чтобы убедиться что с приложением все в порядке,​ но мы не хотим держать открытым ssh-соединение все это время. Также у нас есть второй плей на мониторинг базы данных,​ оба плея будут выполняться параллельно. Результаты выполнения зарегистрируем в переменные:​ Нам нужно добавить плей в плейбук,​ который будет мониторить веб-апку в течении 5 минут, чтобы убедиться что с приложением все в порядке,​ но мы не хотим держать открытым ssh-соединение все это время. Также у нас есть второй плей на мониторинг базы данных,​ оба плея будут выполняться параллельно. Результаты выполнения зарегистрируем в переменные:​
  
-<​code>​+<​code ​yaml>
 - -
   name: Deploy a Postgres   name: Deploy a Postgres
Строка 122: Строка 122:
 </​code>​ </​code>​
  
-В современном мире развития программного обеспечения необходимость быстрого и автоматизированного деплоя ​становится все более важной. Однако использование инструментов,​ таких как Kubernetes, не всегда доступно или оправдано. Ansible же является гибким и мощным инструментом,​ который может быть использован в любой обстановке. Приглашаю вас на [[https://otus.pw/J3OF/​|бесплатный вебинар]],​ в рамках которого мои коллеги поделятся с вами своими знаниями и опытом в области использования Ansible для деплоя приложений. Вы узнаете,​ как настроить автоматический процесс развертывания с помощью Ansible и Docker, минуя сложности и необходимость в Kubernetes.+==== Пример с until ==== 
 + 
 +<code yaml> 
 +--- 
 +- name: user 
 +  hosts: demo 
 +  any_errors_fatal:​ true 
 +  tasks: 
 +    - name: PreConfig block 
 +      block: 
 +      - name: sleep 
 +        command: /bin/sleep 15 
 +        async: 1000 
 +        poll: 0 
 +        register: sleep 
 +      - debug: 
 +          var: sleep 
 +      - name: Echo 
 +        command: echo "​Done"​ 
 +      become: true 
 +    - name: Check sleep status 
 +      async_status:​ 
 +        jid: {{ sleep.ansible_job_id }} 
 +      register: job_result 
 +      until: job_result.finished 
 +      retries: 100 
 +      delay: 1 
 +      become: true 
 +</code>
  
linux/ansible/async.1701342525.txt.gz · Последние изменения: 2023/11/30 14:08 — werwolf