Введение в Ansible
Что такое Ansible?
Ansible – это платформа автоматизации с открытым исходным кодом. Он очень и очень прост в настройке, но при этом мощный. Ansible может помочь вам в управлении конфигурацией, развертывании приложений и автоматизации задач. Он также может выполнять ИТ-оркестровку, когда вы должны запускать задачи последовательно и создавать цепочку событий, которые должны произойти на нескольких разных серверах или устройствах. Ansible быстро становится лидером в мире средств автоматизации. Давайте посмотрим на некоторые причины популярности Ansible.
Преимущества использования Ansible:
- Бесплатно: Ansible – это инструмент с открытым исходным кодом.
- Очень просто настроить и использовать: для использования сценариев Ansible не требуются специальные навыки программирования.
- Мощный: Ansible позволяет моделировать даже очень сложные ИТ-процессы.
- Гибкость: вы можете управлять всей прикладной средой независимо от того, где она развернута. Вы также можете настроить его в соответствии со своими потребностями.
- Без агента: вам не нужно устанавливать какое-либо другое программное обеспечение или порты брандмауэра на клиентских системах, которые вы хотите автоматизировать. Вам также не нужно создавать отдельную структуру управления.
- Эффективно: поскольку вам не нужно устанавливать дополнительное программное обеспечение, на вашем сервере остается больше места для ресурсов приложений.
Что может Ansible?
Управление конфигурацией
Ansible разработан, чтобы быть очень простым, надежным и последовательным для управления конфигурацией. Если вы уже работаете в ИТ, вы можете очень быстро приступить к работе. Конфигурации Ansible – это простые описания данных инфраструктуры, которые могут читать люди и анализировать машины. Все, что вам нужно для начала управления системами, – это пароль или ключ SSH (Secure Socket Shell, сетевой протокол).
Пример того, насколько легко Ansible делает управление конфигурацией: если вы хотите установить обновленную версию программного обеспечения определенного типа на всех компьютерах вашего предприятия, все, что вам нужно сделать, это записать все IP-адреса узлов (также называемых удаленные хосты) и напишите Ansible playbook, чтобы установить его на все узлы, затем запустите playbook со своей управляющей машины.
Оркестровка
Как следует из названия, оркестровка включает объединение различных элементов в прекрасно управляемую целую операцию, подобно тому, как музыкальный дирижер объединяет ноты, воспроизводимые всеми различными инструментами, в единое художественное произведение. Например, при развертывании приложения вам необходимо управлять не только интерфейсными и внутренними службами, но и базами данных, сетями, хранилищем и т. д. Также нужно убедиться, что все задачи выполняются в правильном порядке. Ansible использует автоматизированные рабочие процессы, подготовку и многое другое, чтобы упростить управление задачами. И после того, как вы определили свою инфраструктуру с помощью сборников пьес Ansible, вы можете использовать ту же оркестровку везде, где вам нужно, благодаря переносимости сборников пьес Ansible.
Развертывание приложений
Когда вы определяете свое приложение с помощью Ansible и управляете развертыванием с помощью Ansible Tower, группы могут эффективно управлять всем жизненным циклом приложения от разработки до производства. Вам не нужно писать собственный код для автоматизации ваших систем; вы перечисляете задачи, которые необходимо выполнить, написав playbook, и Ansible выяснит, как привести ваши системы в состояние, в котором вы хотите, чтобы они находились. Другими словами, вам не придется настраивать приложения на каждой машине вручную. Когда вы запускаете playbook со своей управляющей машины, Ansible использует SSH для связи с удаленными хостами и выполнения всех команд (задач).
Подготовка
Первым шагом в автоматизации жизненного цикла ваших приложений является автоматизация предоставления вашей инфраструктуры. С помощью Ansible вы можете предоставлять облачные платформы, виртуализированные хосты, сетевые устройства и серверы без операционной системы.
Безопасность и соответствие
Когда вы определяете свою политику безопасности в Ansible, сканирование и исправление политики безопасности на уровне сайта можно интегрировать в другие автоматизированные процессы. И он будет неотъемлемой частью всего, что будет развернуто. Это означает, что вам нужно настроить данные безопасности один раз на вашем управляющем компьютере, и они будут автоматически встроены во все другие узлы. Более того, все учетные данные (идентификаторы и пароли пользователей администратора), которые хранятся в Ansible, не могут быть получены в виде обычного текста ни одним пользователем.
Ansible-Архитектура
Как вы можете видеть на диаграмме выше, движок автоматизации Ansible напрямую взаимодействует с пользователями, которые пишут плейбуки для выполнения движка автоматизации Ansible. Он также взаимодействует с облачными сервисами и базой данных управления конфигурацией (CMDB).
Архитектура автоматизации Ansible состоит из следующих пунктов:
- Инвентаризация: инвентаризация Ansible – это списки хостов (узлов) вместе с их IP-адресами, серверами, базами данных и т. д., которыми необходимо управлять. Затем Ansible выполняет действия через транспорт – SSH для UNIX, Linux или сетевых устройств и WinRM для системы Windows.
- API-интерфейсы: API-интерфейсы в Ansible используются в качестве транспорта для облачных служб, общедоступных или частных.
- Модули: модули выполняются непосредственно на удаленных хостах через playbook. Модули могут управлять системными ресурсами, такими как службы, пакеты или файлы (что угодно на самом деле), или выполнять системные команды. Модули делают это, воздействуя на системные файлы, устанавливая пакеты или выполняя вызовы API в сервисную сеть.
- Плагины: плагины позволяют выполнять задачи Ansible на этапе сборки задания. Плагины – это фрагменты кода, которые расширяют основные функции Ansible. Ansible поставляется с рядом удобных плагинов, и вы можете легко написать свои собственные. Например, плагины действий являются интерфейсными модулями и могут выполнять задачи на контроллере перед вызовом самих модулей. Кэш – плагины используются для хранения кэша «фактов» , чтобы избежать дорогостоящих операций по сбору фактов.
В Ansible Architecture есть еще несколько компонентов, как описано ниже:
- Сеть: Ansible также можно использовать для автоматизации различных сетей. Ansible использует ту же простую, мощную и безагентную среду автоматизации, которую уже используют ИТ-операции и разработка. Он использует модель данных (сценарий или роль), отдельную от механизма автоматизации Ansible, который легко охватывает различное сетевое оборудование.
- Хосты: хосты в архитектуре Ansible – это просто системы узлов, которые Ansible автоматизирует. Это может быть любая машина – Windows, Linux, RedHat и т. д.
- Playbooks: Playbooks – это простые файлы, написанные в формате YAML, который описывает задачи, которые должны быть выполнены Ansible. Playbooks может объявлять конфигурации, но они также могут управлять шагами любого упорядоченного вручную процесса, даже если он содержит операторы перехода. Они могут запускать задачи синхронно или асинхронно.
- CMDB: это репозиторий, который действует как хранилище данных для ИТ-установок. Он содержит данные, относящиеся к набору ИТ-активов (обычно называемых элементами конфигурации (CI)), а также для описания отношений между такими активами.
- Облако: это сеть удаленных серверов, размещенных в Интернете для хранения, управления и обработки данных, а не локальный сервер. Вы можете запускать свои ресурсы и экземпляры в облаке и подключаться к своим серверам.
Вывод
Ansible – это радикально простой механизм автоматизации ИТ, который автоматизирует выделение облачных ресурсов, управление конфигурацией, развертывание приложений, оркестровку внутри служб и многие другие ИТ-потребности.
В нем не используются агенты и дополнительная настраиваемая инфраструктура безопасности, поэтому его легко развернуть и, что наиболее важно, он использует очень простой язык (YAML в форме Ansible Playbooks), который позволяет описывать ваши задачи автоматизации.
Спасибо, всем друзья, приятного чтения!