Ansible: введение в эту платформу автоматизации с открытым исходным кодом
Ansible — это решение с открытым исходным кодом, которым управляет Red Hat и которое является частью Red Hat Ansible Automation Platform. Ansible помогает организациям централизованно организовывать и автоматизировать приложения и среды, чтобы они были согласованными на основе определенных файлов конфигурации Ansible (команды). Он использует формат YAML, что означает, что его легко читать, понимать и адаптировать к новым требованиям.
Поскольку Ansible — это проект с открытым исходным кодом, мы будем использовать модули, то есть то, как платформа взаимодействует с продуктами и функциями, и она поддерживает несколько технологий, включая Linux, Windows, Microsoft Azure, NetApp, F5, Check Point, Aruba, Cisco, Google Cloud и AWS. Короче говоря, мы сможем управлять операционными системами, инфраструктурой, приложениями и сетями из одного места.
Взгляд под капот
Одной из ключевых особенностей Ansible является то, что он не требует агента. подключится к целевой системе, используя доступные протоколы, как показано на изображении ниже, и выполнит инструкции, чтобы убедиться, что целевая система настроена на основе команд Ansible Playbooks/Roles/Ad-hoc (мы углубимся в эти термины более подробно в этой серии).
Еще одна ключевая особенность заключается в том, что ее можно использовать для решения простых и сложных сценариев с использованием одного и того же процесса через границу, что помогает разработчикам решений и операторам использовать эту технологию.
Инфраструктура как код (IaaC) — это тема, которая никуда не денется, и здесь, в TechGenix, мы рассмотрели несколько ее разновидностей. Я рассмотрел несколько тем, связанных с DevOps в шаблонах Azure DevOps и ARM, в своих предыдущих статьях. В этой серии статей мы переключимся и изучим Ansible и способы его интеграции с существующими решениями.
На предыдущей диаграмме показан Red Hat Ansible Engine, который можно установить на любой Linux, чтобы использовать Ansible и начать управлять своей средой. Однако у них есть решение, дополняющее Ansible Engine, и оно называется Red Hat Ansible Tower. Это веб-служба, предоставляющая веб-консоль и ряд других функций, помогающих корпоративной среде быть более успешной. Вот некоторые особенности:
- Приборная доска
- Обновления в реальном времени
- Редактор рабочего процесса для нескольких книг воспроизведения
- Возможности поддержки CI/CD (непрерывная интеграция/непрерывное развертывание)
- Аудиторская проверка
- Высокая доступность и масштабируемость для Ansible Tower (кластер)
- Интегрированные уведомления
- Задание, которое может выполняться непрерывно, чтобы поддерживать соответствие требованиям в лучшем виде
- Интеграция с Active Directory
- Управление доступом на основе ролей
- Разрешить одной кнопке запускать действия
Если вы готовитесь к экзамену Red Hat Certified Engineer (RHCE), Ansible является обязательным знанием перед сдачей экзамена. Сертификация изменилась, и новый экзамен основан на Ansible с несколькими темами от RHCSA (сертифицированный системный администратор Red Hat).
Архитектура высокого уровня
Мы изучим несколько областей Ansible здесь, в TechGenix, но прежде чем вдаваться в подробности, мы должны получить хорошее представление о том, как это работает с точки зрения высокого уровня.
Если мы посмотрим на диаграмму выше и начнем слева направо, первое, что мы заметим, это то, что администратор может взаимодействовать с Ansible несколькими способами, используя либо CLI (интерфейс командной строки), либо веб-интерфейс.
Интерфейс командной строки имеет два разных подхода: мы можем отправлять команды из командной строки, используя исполняемый файл ansible, и это называется взаимодействием . Второй подход заключается в использовании , который представляет собой файл YML, содержащий удобочитаемую инструкцию для выполнения задач на нужных хостах или группе хостов при вызове playbook, и мы будем использовать исполняемый файл ansible-playbook.
Если мы хотим использовать веб-интерфейс и иметь более корпоративную группу функций для улучшения Ansible, нам нужно добавить Red Hat Ansible Tower, программный компонент, который выведет Ansible на новый уровень. Это может быть один или несколько серверов для обеспечения высокой доступности и отказоустойчивости, и он содержит базу данных PostgreSQL на серверной части.
Важнейшим компонентом, благодаря которому все работает, является , и он состоит из ключевых областей: Inventory, Modules, API and Connections и Plugins.
- Инвентаризация: это предопределенный список узлов, на которых Ansible может выполнять свои плейбуки/специальные команды. Инвентаризация может быть такой же простой, как статический файл, выражение с использованием ряда серверов, настроенное и даже динамическое.
- Модули: Ansible поставляется с более чем 400 модулями, и они представляют собой фрагмент кода, который позволяет Ansible взаимодействовать и выполнять задачи на целевых хостах. Мы определяем модуль, который мы хотим использовать, а затем действия/задачи, которые будут выполняться как часть этого модуля.
- API и соединения: это транспортная связь между Ansible и управляемыми узлами. Это может быть SSH/WinRM или даже API при работе с облачными платформами, такими как Azure.
- Плагины: они улучшают вселенную Ansible, добавляя фрагмент кода, расширяющий текущую среду для управления или выполнения дополнительных задач.
Одной из ключевых функций, которая объединяет большинство компонентов, которые мы вкратце обсудили, является playbook. Это список задач, которые будут выполняться в порядке, описанном в документе. Для каждой задачи у нас будет модуль и операции, которые мы хотим выполнять на нужных узлах. Поскольку это файл YAML, мы знаем, что он удобен для глаз, и даже люди, не являющиеся техническими специалистами, могут читать и хорошо понимать, что происходит.
Следите за новостями об Ansible
В этой начальной статье мы рассмотрели общий обзор Ansible и Ansible Tower. Мы рассмотрели их основные компоненты и то, как они взаимодействуют друг с другом для управления узлами. В других статьях мы более подробно рассмотрим некоторые компоненты Ansible, а также способы их использования и применения в реальных сценариях.