Плейбук ansible что это

Что такое Ansible и как его использовать

Авторизуйтесь

Что такое Ansible и как его использовать

Что такое Ansible? Это ПО с открытым исходным кодом, которое автоматизирует поставку программного обеспечения, управление конфигурацией и развёртывание приложений. Ansible помогает DevOps-специалистам автоматизировать сложные задачи.

Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.

Ключевые особенности программы Ansible

Установка и запуск

Инструкцию по установке на другие ОС можно найти здесь.

Структура Ansible

Модули

Это небольшие программы, выполняющие определённую работу на сервере. Например, вместо запуска этой команды:

Мы можем использовать модуль apt и установить htop:

Использование модуля даст вам возможность узнать, установлен он или нет.

Плагины

Ansible поставляется с несколькими удобными плагинами, и вы можете легко написать свой собственный.

Инвентаризация хостов

Чтобы предоставить перечень хостов, нам нужно обозначить список, находящийся в файле инвентаризации. Он напоминает содержание файла hosts.

В простейшем виде он может содержать одну строку:

Playbooks

Ansible playbooks — это способ отправки команд на удалённые компьютеры с помощью скриптов. Вместо того, чтобы индивидуально использовать команды для удалённой настройки компьютеров из командной строки, вы можете настраивать целые сложные среды, передавая скрипт одной или нескольким системам.

group_vars

Файл содержит набор переменных, например имя пользователя и пароль базы данных.

Это способ сгруппировать несколько задач в один контейнер, чтобы эффективно автоматизировать работу с помощью понятной структуры каталогов.

Обработчики

Представляют собой списки задач, которые на самом деле не отличаются от обычных задач, на которые ссылается глобально уникальное имя и которые оповещаются уведомителями. Если ничто не уведомляет обработчик, он не будет запускаться. Независимо от того, сколько задач уведомляет обработчик, он запускается только один раз, после того как все задачи завершены.

Если у вас playbook с большим объёмом, может быть полезно иметь возможность запускать только определённую часть его конфигурации.

Демо «Реальное приложение»

Цель этой демонстрации — установить приложение Laravel в VPS. Для этого используем Lightsail.

Последовательность действий для создания и запуска Laravel APP:

Рассмотрим каждый пункт подробнее.

Создание экземпляра Ubuntu Lightsail

Перейдите на панель управления Lightsail и нажмите «Создать экземпляр».

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Выберите свою любимую ОС.

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Выберите «Добавить скрипт запуска», который запускается после создания вашего экземпляра. Не забудьте получить SSH-ключ.

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Установка зависимостей Ansible на нашем VPS

Добавьте эти sh-команды для установки зависимостей:

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что этоПлейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Теперь у нас есть готовый экземпляр, перейдём к построению Ansible Project.

Добавление SSH-ключей в Git

Вы должны добавить свой сервер id_rsa.pub к своим ключам GitHub SSH, войдя в свой сервер.

Сборка хостов и ansible.cfg

Определение роли в Ansible

Используем модуль Ping, чтобы убедиться, что хост работает, после чего нужно обновить все пакеты и установить два модуля: git и htop.

Определение обработчика

Установка модулей PHP

Чтобы вызвать обработчик, мы должны использовать notify: Restart PHP-FPM, имена обработчиков должны быть уникальными.

В этом руководстве мы определили php как тег, поэтому, например, если вы хотите запустить только эту задачу из своего playbook, вам необходимо выполнить её с —tags = ”php”, которая будет исполнять только её.

Установка Nginx

Добавление default-конфигурации Nginx

vars.yml

Примечание: Рекомендуется использовать ansible-vault для шифрования и дешифрования переменных.

Как использовать Ansible-Vault

Создайте секретный файл хранилища, содержащий ключ шифрования, который шифрует ваши переменные.

Чтобы зашифровать переменные, используйте:

Чтобы расшифровать переменные, используйте:

Создание базы данных MySql, имени пользователя и пароля

mysql_user и mysql_pass определены внутри vars.yml.

Клонирование кодовой базы

repo_git_url и app_work_dir определены внутри vars.yml.

Генерирование .env

Ansible использует шаблонизатор Jinja2 для динамических выражений и доступа к переменным. Создадим файл env.conf.

Создание playbook

Как видно, мы определили aws как хост для этого playbook, и sudo yes даёт нам возможность выполнять команду как пользователю sudo. У нас есть vars_files, где мы храним наши vars. Мы установили roles, каждая role выполняет определённую задачу. И, наконец, у нас есть handlers, которые содержат все обработчики проекта.

Источник

🐹 Ansible: Часть 3. Сценарии (плейбуки) — Playbooks.

Опубликовано 2021-04-07 · Обновлено 2021-04-15

Содержание:

На чем было опробовано:

1. Введение.

Официальную документацию с официальными примерами всегда можно почитать на сайте разработчиков Ansible.

Как установить и первоначально настроить Ansible описано здесь:

Так как простые задачи для Ansible реально простые, в буквальном смысле слова, то я принял решение вынести их в отдельную инструкцию:

По данной ссылке я создам небольшую подборку самых интересных и типовых плейбуков, которые могут пригодиться вам в повседневной работе.

Как настраивать защищенные плейбуки описано в этом разделе.

2. Сценарии — playbooks.

Ansible позволяет не только выполнять единичные задачи, но и писать сценарии, которые необходимо выполнить на управляемых узлах.

Рассмотрим структуру и правила написания таких сценариев более подробно.

Все сценарии в Ansible пишутся на YAML — это удобный для человека формат данных, гораздо более простой, чем XML или JSON.

Чтобы выполнить сценарий используется команда ansible-playbook со следующим синтаксисом:

Для Ansible практически каждый YAML файл начинается со списка. Каждый элемент списка — список пар «ключ-значение», часто называемая словарем.

Основными параметрами/группами простого сценария являются:

Также в сценарии перед непосредственным описанием задач могут быть указаны следующие параметры или группы параметров:

Рассмотрим все эти разделы более подробно.

В разделе hosts указывается группа управляемых узлов, к которой будут применены описываемые в сценарии изменения.

Так, строка формата:

Сценарии могут выполняться не только от имени пользователя, под именем которого установлено соединение, но и любого другого.

Если добавить параметр ‘ user: postgres ‘, то все действия будут выполняться с привилегиями пользователя postgres.

В разделе vars указываются переменные, которые будут использованы в сценарии, и их значения:

Далее указываются модули Ansible, которые будут задействованы при ее выполнении:

Для каждой задачи можно указывать пользователя, от имени которого она будет выполнена:

Еще некоторые примеры.

Словарь представлен в виде « ключ: » (двоеточие и пробел) « значение »:

При необходимости словари могут быть представлены в сокращенной форме:

Можно указать логические значение (истина/ложь) так:

Целиком наш пример YAML–файла будет выглядеть так:

Для переменных Ansible использует « << var >> ». Если значение после двоеточия начинается с « < », то YAML будет думать, что это словарь.

Для использования переменных нужно заключить скобки в кавычки:

Этого достаточно для начала написания playbooks.

По данной ссылке я создам небольшую подборку самых интересных и типовых плейбуков, которые могут пригодиться вам в повседневной работе.

3. Обработчики событий — handlers.

4. Контроль выполнения.

Допустим, что при выполнении сценария нам нужно проверять определённые переменные или состояния и, в зависимости от них, выполнять или не выполнять какие-либо задачи.

Для этого можно использовать оператор « when »:

5. Шаблонизация.

В Ansible используется шаблонизатор Jinja2.

Приведём пример шаблона (часть конфигурации powerdns):

В приведённом примере мы подставляем в шаблон следующие значения:

Обработку шаблонов и, в данном случае, генерацию конфигурационного файла выполняет модуль template ; он же может задать необходимые права доступа и изменить владельца/группу:

Внимание! Файл шаблона и файл с паролем пользователя базы данных находятся на машине управления, а результатом будет файл на удалённом узле.

6. Делегирование задачи другому узлу.

Иногда требуется выполнить задачу на определённом узле, но в контексте другого узла.

7. Роли.

Ролью называется типовой набор переменных и задач, назначаемых для одного или нескольких серверов. Если вам нужно применить к серверу или группе серверов типовой набор операций, вам достаточно просто назначить ему роль. Предварительно в проекте каталоге проекта должна быть создана соответствующая структура.

В сценариях роли назначаются следующим образом:

8. Структура проекта.

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

9. Пишем первые playbook’и.

Playbook может состоять из списка обслуживаемых серверов, переменных пользователя, задач, обработчиков (хендлеров) и так далее. Большинство настроек конфигурации можно переопределить в playbook. Каждый playbook состоит из одного или более действия (игры) в списке.

Цель игры — связать группу хостов с предопределенными ролями, представленными как вызов задач Ansible.

В качестве другого примера давайте рассмотрим процесс установки nginx.

Создадим директорию, где будут хранится playbooks:

Создадим файл setup_nginx.yml в директории playbooks со следующим содержанием:

Давайте рассмотрим содержимое:

Узнать, на каких узлах будет происходить работа, можно командой:

где – путь к вашему playbook ( playbooks/setup_nginx.yml ).

Задача — это список действий, которые вы хотите выполнить. Поле задачи содержит имя задачи (справочная информация о задаче для пользователя playbook), модуль, который должен быть выполнен и аргументы, требуемые для модуля. Параметр « name » может добавляться опционально, но, в целом, рекомендуемый.

10. Пример сценария.

В этом примере первое воспроизведение предназначено для web-серверов, а второе — для серверов баз данных:

11. Практические примеры плейбуков.

По данной ссылке я создам небольшую подборку типовых плейбуков, которые могут пригодиться вам в повседневной работе.

12. Запуск плейбуков.

Чтобы запустить плейбук и выполнить все определенные в нем задачи, используйте команду ansible-playbook:

13. Запрос информации о play.

Точно так же можно запросить все узлы, которые будут затронуты выполнением play, без запуска каких-либо задач на удаленных серверах:

Вы можете использовать теги, чтобы ограничить выполнение play.

14. Управление выполнением плейбука.

Эта опция в качестве аргумента требует правильное имя задачи:

Например, если вы хотите выполнить только задачи, помеченные как nginx или mysql, вы можете использовать:

15. Настройка защищенных плейбуков.

Если ваши плейбуки Ansible содержат конфиденциальные данные, такие как пароли, ключи API и учетные данные, важно обеспечить их безопасность с помощью шифрования. Ansible предоставляет ansible-vault для шифрования файлов и переменных.

Несмотря на то, что любой файл данных Ansible, а также двоичные файлы, возможно зашифровать изначально, чаще для шифрования переменных файлов, содержащих конфиденциальные данные, используется ansible-vault. После шифрования файла с помощью этого инструмента вы сможете выполнять, редактировать или просматривать его, только предоставив соответствующий пароль, указанный при первом шифровании файла.

Источник

Использование Ansible Playbooks

В инструкции описано применение и работа с Ansible Playbook, а также кратко рассмотрена их структура.

Что такое Ansible Playbooks?

Playbook в Ansible определяет серию некоторых действий для выполнения и адресованы определенным наборам серверов. В отличие от некоторых других инструментов для выполнения настроек, Playbook не описывает состояние машины, а Ansible самостоятельно определяет все изменения, которые необходимо внести. Тем не менее, плейбуки должны быть разработаны как идемпотенты, а это значит, что они могут запускаться более одного раза без негативных последствий.

Например, следующий playbook будет входить на все серверы группы marketingservers и обеспечивать запуск веб-сервера Apache:

В плейбуке выше приведен пример задания (task):

Каждое задание должно иметь имя, которое впоследствии регистрируется и может помочь отслеживать прогресс. После строки имени (name) находится модуль, который будет запущен, в данном случае это служебный модуль. Другие атрибуты разрешают больше опций, в примере Ansible разрешается использовать привилегии sudo.

Запуск Ansible Playbook

Запустить готовый плейбук можно используя следующую команду:

Однако, если есть необходимость отфильтровать список хостов, чтобы сценарий применялся только к одному из этих хостов, можно добавить флаг и указать подмножество хостов в файле:

Регистрация результатов

Когда вы устанавливаете и настраиваете службы вручную, почти всегда необходимо знать результат действий. Настроить эту функциональность можно с помощью регистрации.

Для каждой задачи при желании возможно зарегистрировать ее результат (сбой или успех) в переменной, которую можно проверить позже. При использовании этой функциональности рекомендуется указывать Ansible игнорировать ошибки для такой задачи, так как обычно выполнение playbook прерывается в случае возникновения каких-либо проблем.

Таким образом, если необходимо проверить, выполнилась ли задача или нет и принять решение о последующих шагах, необходимо использовать функциональность регистрации.

Источник

Создание плейбуков Ansible в Ubuntu

Системы управления конфигурациями позволяют централизованно управлять различными системами в автоматическом режиме.

Существует множество систем управления конфигурациями, предназначенных для Linux (например, Chef или Puppet), но они довольно сложные. Ansible – простое альтернативное решение, не требующее большого количества ресурсов.

В предыдущем руководстве речь шла об установке и настройке Ansible. Данное руководство научит создавать плейбуки (playbook) – автоматизированные сценарии для настройки клиентских машин.

Примечание: Данное руководство выполнено на серверах Ubuntu 12.04.

Что такое плейбук?

Плейбуки (playbooks) Ansible – это сценарии, с помощью которых на удалённые серверы отправляются наборы команд. Вместо того чтобы запускать каждую команду Ansible отдельно, вы можете создать целый комплекс команд и поместить его в плейбук.

Плейбуки Ansible пишутся в формате сериализации данных YAML.

Примечание: Если вы не знаете, что такое формат сериализации данных, представьте себе способ перевода программной структуры данных (списков, массивов, словарей и т.д.) в формат, который может легко храниться на диске. JSON – ещё один популярный формат сериализации данных, но YAML проще читать.

Каждый плейбук состоит из одного или нескольких плеев, которые связывают хост с определённой функцией. Для этого Ansible использует задачи (вызовы модулей).

Базовый пример плейбука

Базовый плейбук выглядит так:

— name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
— start nginx
handlers:
— name: start nginx
service: name=nginx

Рассмотрим его по частям.

Файл должен начинаться с:

Это требование ко всем документам YAML, иначе документ будет некорректно прочитан. Формат YAML позволяет помещать в один файл несколько «документов», и такие документы нужно разделять символами —. Однако Ansible может читать только один документ из одного файла.

Формат YAML очень чувствителен к пробелам. с помощью пробелов он группирует данные. В файлах YAML можно использовать только пробелы; чтобы файл был прочитан корректно, все интервалы должны располагаться последовательно.

Элементы файла, которые находятся на одном уровне, отмечаются одинаковым интервалом.

Элементы, которые начинаются с тире (-), считаются списками. Элементы в формате ключ:значение действуют как хеши или словари. В целом, это всё, что нужно знать о базовом YAML.

Документы YAML определяют иерархическую структуру.

Вторая строка файла:

Это список YAML, но поскольку этот компонент находится в крайнем левом углу (на высшем уровне), он также является плеем Ansible. Плей – это группа задач, которая обрабатывается на некотором количестве хостов и обеспечивает выполнение назначенной этим хостам функции. Каждый плей задаёт хост или группу хостов.

Далее следует набор задач:


— hosts: droplets
tasks:
— name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
— start nginx

На высшем уровне находится tasks (на одном уровне с hosts). Этот параметр задаёт список пар «ключ:значение».

Name – описательный параметр, в котором можно выбрать любое имя.

Ключ apt – это ссылка на модуль Ansible; она работает примерно как запуск команды ansible или такой команды:

Этот модуль позволяет указать пакет и состояние, в котором нужно его поддерживать (например, installed).

Строка update-cache=true обновляет кэш пакетов удалённой машины (apt-get update) перед установкой нового пакета.

Элемент notify содержит список, состоящий из одного элемента – start nginx. Это не внутренняя команда Ansible, а ссылка на обработчик, который при вызове внутри задачи может выполнять определенные функции. Определите обработчик start nginx ниже:


— hosts: droplets
tasks:
— name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
— start nginx
handlers:
— name: start nginx
service: name=nginx state=started

Раздел handlers находится на том же уровне, что hosts и tasks. Обработчики тоже являются своего рода задачами, но они могут запускаться только внутри задачи на клиентской машине.

Например, в данном файле есть обработчик, который запускает сервис Nginx после установки пакета. Обработчик не вызывается, если задача «Installs nginx web server» не вносит изменений в систему (то есть если в системе уже установлен такой веб-сервер).

Сохраните этот плейбук в файл nginx.yml.

Такой же файл в JSON будет иметь такой вид:

[
<
«hosts»: «droplets»,
«tasks»: [
<
«name»: «Installs nginx web server»,
«apt»: «pkg=nginx state=installed update_cache=true»,
«notify»: [
«start nginx»
] >
],
«handlers»: [
<
«name»: «start nginx»,
«service»: «name=nginx state=started»
>
] >
]

Как видите, формат YAML гораздо компактнее и его намного проще читать.

Запуск плейбука Ansible

Собрав плейбук, вы можете вызвать его с помощью команды:

Например, чтобы установить и запустить на сервере Nginx, можно выполнить команду:

Поскольку плейбук сам указывает хост, на котором он должен быть запущен, задавать хост в команде не нужно.

Однако если вам нужно отфильтровать список хостов и запустить плейбук только на одном хосте из списка, добавьте флаг, чтобы указать подмножество хостов в файле:

Итак, чтобы установить и запустить Nginx только на host3, нужно ввести:

Добавление функций в плейбук

На данный момент плейбук имеет такой вид:


— hosts: droplets
tasks:
— name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
— start nginx
handlers:
— name: start nginx
service: name=nginx state=started

Он достаточно прост и работает корректно, однако он позволяет только установить и запустить одну программу, а это совсем не много.

Добавление индекс-файла по умолчанию

Плейбук может передать файл с сервера Ansible на хост. Для этого нужно добавить несколько строк:


— hosts: droplets
tasks:
— name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
— start nginx
— name: Upload default index.html for host
copy: src=static_files/index.html dest=/usr/share/nginx/www/ mode=0644
handlers:
— name: start nginx
service: name=nginx state=started

Создайте в текущем каталоге новый каталог по имени static_files и поместите в него файл index.html.

mkdir static_files
nano static_files/index.html

В этом файле создайте базовую структуру html.

Источник

Ansible: playbook в Ansible

Главное меню » Linux » Ansible: playbook в Ansible

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Чтобы лучше понять различия между специальной командой Ansible и сценариями Ansible; вы можете думать о специальных командах Ansible как о командах Linux, а playbook – как о сценариях bash.

Специальные команды Ansible идеально подходят для выполнения задач, которые не выполняются часто, таких как получение данных о работоспособности серверов, получение системной информации и т. д.

С другой стороны, плейбуки Ansible идеально подходят для автоматизации сложных задач, таких как системные исправления, развертывание приложений, конфигурации брандмауэра, управление пользователями и т. д.

Обратите внимание, что мы включили все сценарии, сценарии и файлы, которые я собираюсь обсудить в этой серии, в этот репозиторий GitHub.

Прежде чем следовать этой статьи по Ansible Playbook, вам следует обратиться к настройке, упомянутой в первой главе серии статей о Ansible.

Создание вашей первой Ansible playbook

Плейбуки написаны в формате YAML (еще один язык разметки). Если вы не знаете YAML; Мы включили наиболее важные правила синтаксиса YAML на рисунок ниже, чтобы вы могли легко следовать всем примерам статьи:

Плейбук ansible что это. Смотреть фото Плейбук ansible что это. Смотреть картинку Плейбук ansible что это. Картинка про Плейбук ansible что это. Фото Плейбук ansible что это

Кроме того, YAML чувствителен к отступам. Отступ в два пробела рекомендуется использовать в YAML; однако YAML будет следовать любой системе отступов, которую использует файл, если она согласована.

Постоянно нажимать два пробела на клавиатуре не раздражает, поэтому сделайте себе одолжение и включите следующую строку в файл

Это преобразует вкладки в два пробела всякий раз, когда вы работаете с файлом YAML. Понравился этот удобный совет по Vim?

Теперь давайте создадим ваш первый сценарий. В каталоге проекта создайте файл с именем first-playbook.yml со следующим содержимым:

Playbook будет работать на всех хостах и ​​использует файловый модуль для создания файла с именем /tmp/foo.conf ; вы также устанавливаете режим: 0664 и параметры модуля owner: destroyer, чтобы указать права доступа к файлу и владельца файла. Наконец, вы устанавливаете опцию state: touch, чтобы убедиться, что файл создается, если он еще не существует.

Чтобы запустить playbook, вы можете использовать команду ansible-playbook, за которой следует имя файла playbook:

Вот полный вывод вышеуказанной команды:

Результат запуска playbook довольно понятен. На данный момент обратите особое внимание на значение changed = 1 в сводке PLAY RECAP, которое означает, что одно изменение было успешно выполнено на управляемом узле.

Давайте запустим следующую специальную команду, чтобы убедиться, что файл /tmp/foo.conf действительно создан на всех управляемых хостах:

Обратите внимание, что вы также можете запустить специальную команду Ansible, которая будет делать то же самое, что и playbook first- playbook.yml:

Чтобы узнать больше о файловом модуле, посетите его страницу документации Ansible:

Запуск нескольких сценариев с помощью Ansible Playbook

Вы создали только один сценарий, который содержит одну задачу в playbook first- playbook.yml. Playbook может содержать несколько сценариев, и каждый сценарий, в свою очередь, может содержать несколько задач.

Давайте создадим книгу с именем multiple-plays.yml со следующим содержимым:

В этой пьесе есть две пьесы:

Обратите внимание, что мы использовали модуль пакета при первом воспроизведении, поскольку это универсальный модуль для управления пакетами, и он автоматически определяет диспетчер пакетов по умолчанию на управляемых узлах. Мы использовали модуль apt во второй игре, так как мы запускаем его только на хосте Ubuntu ( node4 ).

Модули yum и dnf также существуют и они работают на системах CentOS и RHEL.

Мы также использовали модуль архива для создания сжатого с помощью gzip архива /tmp/logs.tar.gz, который содержит все файлы в каталоге /var/log.

Идите вперед и запустите playbook multi-plays.yml :

Все выглядит хорошо. Вы можете быстро проверить, существует ли архив /tmp/logs.tar.gz на всех узлах, выполнив следующую специальную команду:

Мы также рекомендуем вам проверить следующие страницы документации Ansible и проверить раздел примеров:

Проверка playbooks (перед запуском)

Хотя мы уже показали вам шаги по запуску плейбуков Ansible, всегда полезно проверить свой плейбук перед его запуском. Это гарантирует, что ваш playbook не содержит потенциальных ошибок.

Вы можете использовать опцию –syntax-check, чтобы проверить, есть ли в вашей книге синтаксические ошибки:

Вы также можете использовать опцию –check для пробного прогона вашей playbook перед фактическим запуском playbook:

Обратите внимание, что сухой запуск playbook не зафиксирует никаких изменений на управляемых узлах.

Вы можете использовать –list-options для перечисления хозяев каждой игры в вашей книге:

Вы также можете перечислить задачи каждой игры в своей книге, используя опцию –list-tasks:

Вы также можете проверить справочную страницу ansible-playbook для получения полного списка опций.

Повторное использование задач и учебников

Вы можете написать несколько сценариев, которые имеют общий список задач. В этом случае лучше создать файл, содержащий список всех общих задач, а затем вы сможете повторно использовать их в своих сборниках.

Теперь вы можете использовать модуль import_tasks для запуска всех задач в group-tasks.yml в вашей первой книге воспроизведения следующим образом:

Вы также можете использовать модуль import_playbook для повторного использования всей playbook. Например, вы можете создать новую книгу воспроизведения с именем reuse-playbook.yml со следующим содержимым:

Также обратите внимание, что вы можете импортировать пьесу только на новом уровне игры; то есть вы не можете импортировать игру в другую.

Вы также можете использовать модуль include для повторного использования задач и playbook. Например, вы можете заменить оператор import_playbook на оператор include следующим образом:

Единственное отличие состоит в том, что операторы импорта предварительно обрабатываются во время синтаксического анализа playbook. С другой стороны, операторы include обрабатываются по мере их появления во время выполнения playbook. Таким образом, импорт является статическим, а включение – динамическим.

Выполнение выборочных задач и игр с помощью Ansible playbook

Вы можете выбрать не запускать всю книгу воспроизведения и вместо этого захотите запустить определенные задачи или игры в книге. Для этого можно использовать теги.

Например, вы можете пометить задачу install git в playbook multiple-plays.yml следующим образом:

Как видите, первые две игры были пропущены, и запустился только install git. Вы также можете увидеть changed = 0 в PLAY RECAP, потому что git уже установлен на node4.

Вы также можете применить теги к пьесе аналогичным образом.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *