Видео
Playbooks
Я уже ни раз упоминал о Ansible Playbook в своих статьях ранее, и я думаю если вы читали то уже в целом поняли что это такое.
Ansible Playbook - это основной файл вашего проекта Ansible. Именно в нём вы прописываете какие роли или задачи вы хотите выполнять и на каких конечных хостах.
Для примера рассмотрим создание Ansible Playbook для установки nginx
на всех хостах в группе web
.
vim install_nginx_playbook.yml
- name: Install and start Nginx
hosts: web
become: yes
vars:
app_for_install: "nginx"
tasks:
- name: Install app
yum:
name: "{{ app_for_install }}"
state: latest
- name: Start app
service:
name: "{{ app_for_install }}"
state: started
ansible-playbook -i inventory/static.yml install_nginx_playbook.yml
Play
Play - это собственно то, что внутри Ansible Playbook. Ansible Playbook состоит из одного или множества play. Т.е когда мы пишем какие-либо задачи (tasks
) мы помещаем их в play.
Рассмотрим тот же пример что и с Ansible Playbook, только поделим один play на 2.
vim install_nginx_plays.yml
#Play1 started
- name: Install Nginx
hosts: web
become: yes
vars:
app_for_install: "nginx"
tasks:
- name: Install app
yum:
name: "{{ app_for_install }}"
state: latest
#Play2 started
- name: Start Nginx
hosts: web
become: yes
vars:
app_for_start: "nginx"
tasks:
- name: Start app
service:
name: "{{ app_for_start }}"
state: started
ansible-playbook -i inventory/static.yml install_nginx_plays.yml
Это просто демонстрация примера, понятно, что в production
не нужно делить 2 однотипных задачи (tasks
) на 2 разных play.
Комментарии