Рейтинг:1

Возможно ли это с Ansible?

флаг vn

Я пытаюсь собрать среду Ansible, которая выполнит следующее...

  • Контроль версий провайдера для Ansible playbooks
  • Автоматически отправлять одобренные запросы на вытягивание на зеркальный сервер
  • Сервер Ansible запускает playbook через зеркало (т. е. прокси-сервер) для выполнения на управляемых узлах.

Причины именно этой настройки...

  1. Зеркало уже имеет доступ ко всем управляемым узлам
  2. Утвержденные плейбуки на зеркале будут доступны только для чтения, чтобы те, кто их выполняет, не могли их изменить.

Я знаю, что есть Ansible Tower (или AWX), но я пытаюсь выполнить эту настройку, только установив сервер Linux с возможностями Ansible. Что касается моих вопросов...

  1. Можно ли запускать плейбуки с прокси?
  2. Если да, то есть ли хорошие ссылки на то, как это сделать?

Спасибо!

Ansible Environment Proof of Concept

флаг in
Вам не обязательно использовать AWX, но вы усложнили бы себе жизнь, если бы не использовали для этого какой-либо инструмент. Также рассмотрите Rundeck, Jenkins или что-то еще, что будет извлекать и выполнять одобренные плейбуки.
Рейтинг:0
флаг cn

Сам Ansible Engine, ansible-playbook из пакета ansible, предоставляет средства для удаленного доступа к хостам и запуска на них модулей. Все, у основного инструмента нет API. Добавление дополнительных функций, таких как утверждение или управление доступом на основе ролей, подразумевает добавление компонентов сверху. Возможно, воспользуйтесь инструментами, которые вы, возможно, уже используете.

Ансибл-бегун это API для Ansible, на котором работает AWX, абстрагированный в библиотеку и образ контейнера. Рассмотрим это для написания сценариев Ansible. Если вам интересно, почему нет официального образа контейнера ansible, вот он.

Относительно простой случай — запустить ansible-playbook. Разработка Playbook утверждается через любой процесс совместного управления изменениями. Затем кто-то вручную входит на хост-бастион/управление, извлекает одобренный плейбук из системы контроля версий и запускает именно этот тег. Простой, никаких дополнительных компонентов для настройки. Но не хватает строгого контроля над тем, что именно запускается. Нетривиально сделать playbook неизменным для того, кто их запускает, все же нужно доверять человеку.

Конвейер непрерывной доставки, ориентированный на контроль версий, может соответствовать вашему рабочему процессу. Полнофункциональные подделки, такие как GitLab, могут требовать одобрения для мерж-реквестов. После утверждения получившийся плейбук автоматически запускается на рабочем конвейере с помощью ansible-runner. Рабочие — это то, что подключается к хостам среды через ssh. Жесткий контроль за тем, чтобы работала утвержденная версия. Однако этот стиль конвейера оптимизирован для разработчиков и, возможно, не подходит для запланированных запусков одного и того же.

Любой инструмент управления операциями, который может запускать произвольные сценарии, может запускать плейбуки.Rundeck или Jenkins, возможно, не являются полнофункциональными центрами разработки, но выполнение задач по триггерам — их основная компетенция. Снова рассмотрим ansible-runner как среду для выполнения Ansible.

И есть специальные веб-интерфейсы Ansible, в первую очередь AWX или семафор. AWX довольно сложен, он может выполнять все функции Ansible для предприятия любого размера. Семафор немного проще. Быть специфичным для Ansible может быть преимуществом. Но ни в коем случае они не являются альтернативой интерактивному Ansible на терминале. Ваша организация может предпочесть другие инструменты для разработки, утверждения и запуска вещей.

Ответить или комментировать

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