ansible
Введение в playbooks
Поиск…
обзор
В Ansible, playbook - это файл YAML, содержащий определение того, как должен выглядеть сервер. В игровой книге вы определяете, какие действия должны предпринять Ansible, чтобы получить сервер в нужном вам состоянии. Выполняется только то, что вы определяете.
Это базовая загрузочная игра Ansible, которая устанавливает git на каждый хост, принадлежащий к web
группе:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
Структура Playbook
Формат пьесы довольно прост, но строгий с точки зрения расстояния и макета. Плей-лист состоит из пьес. Игра представляет собой комбинацию целевых хостов и задач, которые мы хотим применить на этих хостах, поэтому рисунок учебника:
Для выполнения этой пьесы мы просто запускаем:
ansible-playbook -i hosts my_playbook.yml
Структура игры
Вот простая игра:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
Как мы говорили ранее, каждая игра должна содержать:
Набор хостов для настройки
Список задач, которые должны выполняться на этих хостах
Подумайте о игре как о том, что связывает хосты с задачами. Помимо указания хостов и задач, игры также поддерживают ряд дополнительных настроек. Два общих:
-
name
: комментарий, который описывает, о чем идет речь. Ansible распечатает это, когда начнется воспроизведение -
vars
: список переменных и значений
Теги
Игра содержит несколько задач, которые могут быть отмечены:
- name: Install applications
hosts: all
become: true
tasks:
- name: Install vim
apt: name=vim state=present
tags:
- vim
- name: Install screen
apt: name=screen state=present
tags:
- screen
Задача с тегом «vim» будет выполняться, когда «vim» указан в тегах. Вы можете указать столько тегов, сколько хотите. Полезно использовать теги, такие как «install» или «config». Затем вы можете запустить playbook с указанием тегов или пропусков. За
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
По умолчанию Ansible запускает все теги