Для чего нужен 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 — давайте попробуем

Ansible — сравнительно молодая система управления конфигурацией, его история насчитывает чуть более трех лет. Но, несмотря на это, он стремительно и быстро ворвался в мир систем управления конфигурацией, потеснив Chef, Puppet и SaltStack.

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

Низкий порог входа

Начать пользоваться ansible можно за пару минут. Допустим, вы используете OSX.

Теперь создадим файл hosts :

Что мы сделали? Для всех хостов (параметр all ) из файла hosts выполнить модуль ping. Давайте посмотрим еще что-нибудь.

Декларативный язык описания конфигурации

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

Для дальнейших примеров я завел машинку t2.micro на aws с Ubuntu 14.04 и прописал ее в hosts.

Запускаем наш первый сценарий, который обновляет кэш apt, а потом ставит два пакета: nginx и postgresql.

Фактически, мы два раза вызвали модуль apt, только с разными параметрами. Сам же файл сценарии представляет себя файл на языке Yaml с вкраплениями шаблонизатора Jinja2.

На управляемые узлы не нужно устанавливать никакого дополнительного ПО

Действительно, для того, чтобы управлять машиной, на ней должен быть установлен Python (а он стоит по-умолчанию на всех современных linux системах) и должен быть доступ по ssh. Сравните это с остальными системами, где необходимо поставить клиента, которому нужны определенные версии различных языков и библиотек. Именно этот факт, кстати, делает старт с ansible гораздо более простым, чем для остальных систем.

Просто написать дополнительный модуль

Модуль можно написать на любом языке, он должен уметь принимать параметры на вход и выдавать json в ответ. Но зачем писать новый модуль, если уже есть 242 модуля на все случаи жизни (в версии 1.8.4). На случай, если вам действительно чего-то не хватает, есть хорошее описание того, как написать свой модуль.

Что-нибудь серьезное

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

Для тех, кому лень что-то писать самому, уже есть тысячи готовых ролей на сайте ansible galaxy, и они вполне достойного качества, чтобы пользоваться ими в бою.

Мы же создадим чистую роль.

А в файле roles/nginx/tasks/main.yml напишем следующее:

Используя роли, можно повторно использовать код (хотя является ли Yaml кодом — философский вопрос). Конечно, пример намеренно упрощен, но из него становится ясно, как организовывать на ansible проекты с большим количеством компонент.

Факты

Шаблоны

В ansible есть шаблоны, которые используют шаблонизатор Jinja2. Давайте сделаем 2 шаблона.

Источник

🐹 Ansible: Часть 1. Описание, установка и первоначальная настройка.

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

Содержание:

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

1. Введение.

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

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

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

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

Предлагается все эти операции автоматизировать и внедрить систему удаленного управления конфигурациями.

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

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

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

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

2. Что такое Ansible?

Ansible — программное решение для удаленного управления конфигурациями, разработанное Майклом Де Хаанном в 2012 году. Название продукта взято из научно-фантастической литературы: в романах американской писательницы Урсулы Ле Гуин была такая штука, как Ansible — это устройство для оперативной космической связи.

Ansible — мощное программное обеспечение автоматизации конфигурирования, с открытым исходным кодом, управления и развертывания приложений на узлах без каких-либо простоев, для работы которого потребуется только SSH. В отличие от подобных продуктов, Ansible устанавливается на единственном хосте, который может даже быть вашей локальной машиной и использует SSH для связи с каждым удаленным узлом. Это позволяет ему быть невероятно быстрым при конфигурировании новых серверов, поскольку не требуются предварительно установленные дополнительные пакеты на каждом новом сервере.

Машина управления, где установлен Ansible и Узлы, управляемая этой машиной по SSH. Местоположение узлов определяется управляющей машиной через её инструментарий. Ansible не требует установки клиентской части или приложения, что означает отсутствие необходимости какой-либо установки агента на удаленных узлах, так что это означает, что нет каких-либо фоновых демонов или программ, выполняемых для Ansible, когда он не управляет узлами.

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

Ansible берет на себя всю работу по приведению удаленных серверов в необходимое состояние. Администратору необходимо лишь описать, как достичь этого состояния с помощью так называемых сценариев — специальных файлов «playbook».

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

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

3. Почему Ansible лучше других подобных программ?

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

Преимущества Ansible по сравнению с другими аналогичными решениями (здесь в первую очередь следует назвать такие продукты, как Puppet, Chef и Salt) заключаются в следующем:

Самостоятельно ознакомиться с Puppet вы можете по моим инструкциям на этом же сайте:

4. Какой метод лучше Push или pull?

“Из коробки” все сценарии и команды выполняются методом push: когда возникает необходимость, мы запускаем сценарий, и он последовательно выполняется на удалённых серверах. Однако разработчики также предусмотрели метод pull и даже написали специальное приложение для установки необходимой для этого части ansible на удалённые хосты.

5. Как работает Ansible.

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

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Файл Host inventory содержит информацию об обслуживаемых серверах, где команды будут исполнены. Файл конфигурации Ansible может быть полезен для указания настроек вашего окружения.

Наборы инструкций (playbooks) состоят из одной или более задач, которые описываются с помощью функциональность модуля ядра Ansible или сторонних модулей, которые могут потребоваться в специфических ситуациях. Сами по себе наборы инструкций — последовательные наборы команд, в которых могут быть проверки условий: если условие не выполняется, определенные команды могут пропускаться.

Также вы можете использовать Ansible API для запуска скриптов. Если скрипту-обертке (wrapper) может потребоваться запуск playbook, это можно сделать через API. Сами playbooks описываются декларативно в формате YAML. Ansible поддерживает сценарии развертывания новых облачных серверов и конфигурирования их на основании ролей. Часть работы может быть проведена в локальном режиме на управляющем сервере, а остальная — на созданном сервере после его первой загрузки.

6. Краткий словарь терминов Ansible.

В этом этой инструкции широко используются такие термины Ansible:

7. Установка.

Обновим операционную систему:

По умолчанию Ansible нет в репозитории CentOS 7 — устанавливаем репозиторий EPEL:

После устанавливаем сам сервер управления:

Где система автоматически обновит список пакетов с учетом нового репозитория и начнет установку Ansible.

Проверка версии установленной версии Ansible:

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

8. Настройка Ansible.

Файл конфигурации описывается в INI–формате. Вы можете переопределить часть или всю конфигурацию в параметрах playbook или переменных окружения.

При исполнении команд Ansible проверяет наличие файла конфигурации в следующих расположениях:

9. Настройка через переменные окружения.

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

После этого переменная ANSIBLE_SUDO_USER может быть использована в playbook.

10. Параметры конфигурации.

Параметров конфигурации Ansible множество.

Давайте рассмотрим некоторые из них:

11. Файл конфигурации ansible.cfg.

По умолчанию список хостов/групп, к которым применяются команды содержится в файле /etc/ansible/hosts :

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

При необходимости его можно переопределить с помощью опции

Пример создания кастомного файла конфигурации.

Подключитесь по SSH к созданному управляющему серверу с установленным Ansible.

Создайте директорию для экспериментов ‘ ansible ‘ в своём домашнем каталоге и перейдите в него:

Также создайте каталог для хранения модулей Ansible и каталог для хранения логов:

Создайте файл ansible.cfg со следующим содержимым:

Указываем обслуживаемые сервера в host inventory.

Для экспериментов можно упомянуть, к примеру пару серверов, которые и можно настраивать.

Нужно сообщить Ansible их адреса и сгруппировать их.

Для этого создайте файл inventory в директории

/ansible/inventory со следующим содержимым:

12. Файл hosts.

Работа с Ansible начинается с настройки его центрального файла списка хостов — так и называется файл hosts.

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

Помимо списка управляемых узлов, в файле hosts могут быть указаны и другие сведения, необходимые для работы: номера портов для подключения по SSH, способ подключения, пароль для подключения по SSH, имя пользователя, объединения групп и тому подобно. В некоторых случаях — в частности, при работе с большими и сложными конфигурациями, — различные параметры можно выносить в отдельные файлы и каталоги.

Более подробно о файле hosts и правилах его написания можно почитать в официальной документации.

13. Информация об узлах — Facts.

Перед внесением изменений Ansible подключается к управляемым узлам и собирает информацию о них: о сетевых интерфейсах и их состоянии, об установленной операционной системе и тому подобное. Он может делать это как с помощью собственного модуля, так и с помощью инструментов ohai и facter, если они установлены (такая возможность специально предусмотрена для пользователей, уже имеющих опыт работы с системами удаленного управления конфигурациями: ohai и facter являются библиотеками фактов для Chef и Puppet).

14. Переменные.

Во время работы, как правило, требуется не только установить какое-либо приложение, но и настроить его в соответствии с определенными параметрами на основании принадлежности к группе серверов или индивидуально (например, IP-адрес BGP-соседа и номер его AS или параметры для базы данных).

Как уже было сказано, загромождать файл hosts будет не очень красиво, поэтому разработчики Ansible пошли следующим путём:

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

15. Модули Ansible.

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

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

Ссылка на документацию: docs.ansible.com.

16. Начальная настройка и тестовый запуск Ansible.

Установим файловый менеджер и текстовый редактор в одном лице — Midnight Commander:

Создадим резервную копию оригинального файла конфигурации:

# cp /etc/ansible/hosts /etc/ansible/hosts.original

Откроем на редактирование файл с серверами, которыми хотим управлять:

и приведем его к следующему виду:

/.ansible.cfg (remote_user).

Все сервера, в данном примере, имеют одинаковую операционную систему CentOS Linux release 7.9.2009 (Core), одинаковых пользователей root и одинаковые пароли на учетных записях root.

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Открываем конфигурационный файл Ansible (выше по тексту был способ изменить место хранения файла конфигурации):

Теперь выполним проверку доступности добавленных серверов:

Данная команда проверит доступность по сети двух серверов из группы test_servers от учетной записи root.

Будет запрошен пароль от учетной записи (в нашем случае, root).

После будет запрошен пароль суперпользователя на серверах.

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

16.1. Если всё заработало.

На экране должно появиться, примерно, следующее:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Наш сервер управления готов к работе.

16.2. Если не заработало.

Если на экране появится ошибка, введите с сервера Ansible следующую команду:

Если подключиться к серверу 192.168.0.39 вышеописанной командой не удалось, возможно введен неправильный пароль или доступ по SSH от root запрещен. В этом случае, создайте служебную учетную запись на сервере 192.168.0.39 и используйте ее для подключения по SSH.

Например, на удаленном сервере вводим:

В этом примере мы создали учетную запись ansible-user и задали ей пароль.

Теперь вводим нашу команду для проверки:

Внимание! Обратите внимание, что мы выполняем теперь запрос от пользователя ansible-user.

17. Организация RSA-ключей между серверами.

Для того, что бы Ansible хозяйничал на хостах, требуется включить на целевых для управления хостах разрешение пользоваться аутентификацией по ключам, создать пару RSA-ключей на Ansible Control Machine и копировать открытые ключи на целевые сервера, которыми планируется управлять.

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

Создаём пару RSA-ключей.

На все вопросы жмём Enter. Нам не нужны никакие пароли и генерируем ключи мы в каталог по умолчанию.

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Копируем открытые ключи на сервера, которыми планируем управлять.

У нас их 3 штуки, поэтому копируем на каждый:

# ssh-copy-id root@192.168.0.39
# ssh-copy-id root@192.168.0.30
# ssh-copy-id root@192.168.0.31

Ответы:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Раскатаем пользователя root на все виртуальные машины, до которых может дотянуться Ansible:

Ответ:

Проверяем вход пользователя root по SSH-ключам c сервера на узлы.

У нас их 3 штуки, поэтому тестируем вход на на каждый:

# ssh root@192.168.0.39
# ssh root@192.168.0.30
# ssh root@192.168.0.31

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Также настроим вход с Ansible-сервера на самого себя:

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

18. Проверка подключения к узлам.

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

или, встроенной в Ansible, одноименной утилитой:

Модуль ping проверит, есть ли у вас учетные данные для подключения к узлам, определенным в файле инвентаря, и может ли Ansible запускать сценарии Python на удаленном сервере от имени root пользователя.

Ответ pong означает, что Ansible готов запускать команды и плейбуки на этом узле.

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Проверять с целевыми узлами можно и поштучно через их алиасы:

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

И еще одну команду:

Ответ:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

19. Примеры простых задач Ansible.

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

20. Сценарии — Playbooks.

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

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

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

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

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

21. Файл инвентаря.

21.1. Пользовательский файл инвентаря.

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

Такая опция действительна и для ansible-playbook:

21.2. Динамический файл инвентаря.

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

Вы можете найти ряд скриптов с открытым исходным кодом в официальном репозитории Ansible GitHub. После загрузки требуемого сценария на Ansible Control Machine и настройки необходимых параметров (например, учетных данных API) вы можете запустить исполняемый файл в качестве пользовательского инвентаря с любой командой Ansible, которая поддерживает эту опцию.

Следующая команда использует скрипт инвентаря my_inventory.py с командой ping для проверки подключения ко всем текущим активным серверам:

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

Ссылка на документацию: docs.ansible.com.

22. Вызов справки по командам.

Существует еще много вариантов команд и флагов, которые могут пригодиться вам в работе с Ansible.

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

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

Ссылка на документацию: docs.ansible.com.

23. Устранение неполадок.

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

24. Возможные ошибки.

24.1. Ошибка «[WARNING]: Updating cache and auto-installing missing dependency: python-apt».

Данная ошибка возникает во время попытки установит пакет с программным обеспечением на целевые хосты с CentOS 7:

Ответ с ошибкой:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Устранение ошибки: воспользуйтесь установщиком yum c CentOS 7 совместимых операционных систем, а не apt с Debian совместимых систем.

Вариант ответа без ошибки:

Для чего нужен ansible. Смотреть фото Для чего нужен ansible. Смотреть картинку Для чего нужен ansible. Картинка про Для чего нужен ansible. Фото Для чего нужен ansible

Программное обеспечение успешно установилось.

Источник

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

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