Ansible: обновления в ключевых решениях для автоматизации вашего мира

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

Ansible: обновления в ключевых решениях для автоматизации вашего мира

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

Red Hat Ansible Engine 2.8: на пути к новым методам обработки Ansible-контента

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

Планируется, что в следующих релизах Создатели (Creators) контента смогут поставлять его в виде специальных пакетов, так называемых Коллекций (Collection), которые можно будет устанавливать в соответствующее для исполнения место на главном узле Ansible (control node) или на управляемом узле (managed node). Создатель коллекций будет непосредственно в пакете прописывать детали исполнения с помощью ролей и плейбуков. Благодаря вышеупомянутым изменениям в Ansible Engine, коллекции станут одним из инструментов, которые позволят отвязать выпуск контента от выпуска официальных версий Ansible Engine.

Новая конструкция Become

Конструкция Become появилась уже давно, но начиная с версии 2.8 слово BECOME по умолчанию используется в Ansible Engine для запроса пароля при повышении привилегий (sudo-привилегии на *nix-системах или enable-режим на сетевых устройствах). Иначе говоря, теперь BECOME – это стандартный инструмент повышения полномочий, который уже сам разбирается с целевой системой.

Вот как выглядит пример его использования:

ansible-playbook --become --ask-become-pass site.yml
BECOME password:

Кроме того, в Ansible Engine 2.8 появился и плагин BECOME, который работает как doas на Linux и как runas на Windows, и позволяет выполнять действия от имени заданного пользователя. Для повышения привилегий на сетевых устройствах используется become-плагин enable.

Поиск Python-интерпретатора

Вам, возможно, доводилось сталкиваться с такой ошибкой:

/usr/bin/python: bad interpreter: No such file or directory

Дело в том, что в предыдущих версиях Ansible Engine по умолчанию считалось, что основной (используемый по умолчанию) Python-интерпретатор расположен в папке /usr/bin/python. Начиная с версии 2.8 Ansible ищет интерпретатор на каждой целевой системе, сначала сверяясь с таблицей путей и имен исполняемого файла основного Python-интерпретатора в различных дистрибутивах, а затем используя упорядоченные списки резервных интерпретаторов (fallback list), подробнее смотрите в Руководстве по портированию на Ansible 2.8.

Retry-файлы больше не создаются по умолчанию

Вы давно искали на диске файлы .retry? Если вы давно используете Ansible, то их явно много, и они только занимают полезное место. Начиная с версии 2.8, Ansible Engine по умолчанию больше не создает эти файлы (что можно отменить, отредактировав используемый по умолчанию файл ansible.cfg).

Обновленный Play Recap

Выдержка из Руководства по портированию на Ansible 2.8:

Play Recap теперь считает задачи (tasks) со статусом ignored и rescued, а также ok, changed, unreachable, failed и skipped, благодаря двум новым счетчикам статистики в callback-плагине default. Failed-задачи, для которых был установлен флаг ignore_errors: yes, учитываются как ignored. Failed-задачи, для которых затем была отработана секция rescue, учитываются как rescued. Обратите внимание, что в отличие от предыдущих версий Ansible, rescued-задачи больше не учитываются как failed.

А в табличке Play Recap по итогам выполнения плейбука у хостов появились дополнительные столбцы skipped, rescued и ignored:

Ansible: обновления в ключевых решениях для автоматизации вашего мира

Облака и контейнеры

В версии 2.8 реализованы улучшения и дополнения в облачных и контейнерных модулях для работы с Amazon Web Services, Microsoft Azure, Google Cloud, Digital Ocean, podman и kubevirt. Также стоит отметить, что файлы TOML теперь можно использовать в качестве inventory-источника.

Paramiko

Пользуетесь Red Hat Ansible Network Automation? Ansible Engine 2.8 больше не содержит paramiko и не зависит от него. По умолчанию Ansible Engine использует ssh. Если вам нужен paramiko, установить его можно командой pip install paramiko

Если вам нужна поддержка по использованию paramiko в рамках подписки Red Hat, обратитесь к статье базы знаний Paramiko package missing after new Ansible Engine installations.

Таким образом, новая версия Red Hat Ansible Engine пополнилась внушительным списком улучшений и изменений, подробнее с которыми можно ознакомиться здесь.

Red Hat Ansible Tower 3.5: больше автоматизации

С конца мая доступна и новая версия Red Hat Ansible Tower 3.5, предлагающая сразу несколько серьезных улучшений для автоматизации, о них мы и поговорим, если вы еще не успели проверить сами.

Итак, сначала ключевые:

  • Поддержка Red Hat Enterprise Linux 8;
  • Поддержка внешних хранилищ учетных данных с использованием соответствующих плагинов;
  • Поддержка become-плагинов в Ansible Tower.

Кроме того, в новой версии исправлено более 160 зарегистрированных ошибок и неполадок.

Поддержка Red Hat Enterprise Linux 8

Мы часто повторяем, что Red Hat Enterprise Linux (RHEL) – это надежный и универсальный фундамент для построения, например, гибридного облака. Ansible Tower 3.5 (как и Ansible Engine 2.8) обеспечивает управление хостами RHEL 8, а также может запускаться на платформе Red Hat Enterprise Linux 8 в качестве управляющего узла системы Red Hat Ansible Automation.

Внешние хранилища учетных данных

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

  • HashiCorp Vault;
  • CyberArk AIM;
  • CyberArk Conjur;
  • Microsoft Azure Key Vault.

Подробности работы с этими системами приведены в документах Secret Management System.

Новые плагины для работы с inventory и повышения привилегий

Следуя за развитием Ansible Engine, Ansible Tower 3.5 предлагает новые inventory-плагины и плагин для работы с новым средством повышения полномочий.

Благодаря новым inventory-плагинам Ansible Tower теперь может использовать в качестве inventory-источника платформы Microsoft Azure, Google Cloud Platform и Red Hat OpenStack Platform, что обеспечивает работу с гибридными облачными средами «из коробки».

Новый плагин Privilege Escalation обеспечивает комплексную обработку задач повышения привилегий, предлагая гораздо больше гибкости и контроля по сравнению с традиционными sudo и su.

Переработанный UI-интерфейс списков

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

Улучшенные метрики

У метрик появились так называемые endpoint (/api/v2/metrics), благодаря которым Ansible Tower теперь легко мониторится с помощью Prometheus и других подобных систем, причем можно одновременно использовать сразу несколько систем, в том числе облачных.

Ansible Tower 3.5 уже доступен для загрузки, новейшая версия Red Hat Ansible Tower может быть установлена как локально, так и через Vagrant или Amazon AMI.

Вебинары по Ansible: прокачайте свои навыки

Постоянно пополняется хранилище вебинаров по теме: www.ansible.com/resources/webinars-training?hsLang=en-us

4 июня прошел вебинар What’s New in Ansible Automation, посвященный новым и улучшенным функциям Red Hat Ansible Tower и Red Hat Ansible Engine. Скоро появится в хранилище.

На русском языке доступен вебинар про Автоматизацию сетей при помощи Ansible.

Источник: habr.com