Что такое Ansible? | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Node.js Developer
-25%
Unity Game Developer. Professional
-25%
React.js Developer
-25%
Android Developer. Professional
-25%
Software Architect
-25%
C++ Developer. Professional
-25%
Backend-разработчик на PHP Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Team Lead Разработчик голосовых ассистентов и чат-ботов Архитектура и шаблоны проектирования Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Подготовка к сертификации Oracle Java Programmer (OCAJP) Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Administrator Linux.Basic Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Что такое Ansible?

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

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

Особенности:

безагентность. В клиенте не установлено ПО либо агент, который общается с сервером; • идемпотентность. Вне зависимости от того, сколько раз вызывается операция, результат не меняется; • простота и расширяемость. Ansible написан на Python и использует для написания команд YAML. Два этих языка считают довольно простыми в изучении.

Установка и запуск, как правило, затруднений не вызывают:

Screenshot_1-1801-253875.png

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

Структура

Модули

Небольшие программы, которые выполняют на сервере определенную работу. Допустим, вместо запуска команды sudo apt-get install htop, мы можем задействовать модуль apt и установить htop:

Screenshot_2-1801-d277d8.png

Применение модуля позволит узнать, установлен он либо нет.

Screenshot_4-1801-70bd6a.png

Плагины

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

Инвентаризация хостов

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

Screenshot_3-1801-093ad0.png

Playbooks

Ansible playbooks представляет собой метод отправки команд на удаленные ПК посредством скриптов. Таким образом, не обязательно персонально применять Ansible-команды для удаленной настройки ПК из командной строки — можно сразу настраивать целые сложные среды и передавать скрипт одной либо нескольким системам.

group_vars

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

Роли

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

Обработчики

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

Теги

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

Архитектура Ansible

Архитектура относительно проста для понимания, что можно видеть из рисунка ниже:

3_7_1-1801-455fe3.png

Существует один механизм автоматизации, напрямую взаимодействующий с пользователем, который пишет и выполняет playbooks. Также он способен взаимодействовать со службами (размещены в облаке), инструментами управления конфигурацией либо БД. Основные компоненты механизма автоматизации -- инвентаризация, подключаемые модули, API-интерфейсы, облако, хосты и т. д.

Источники: -- "Ansible"; -- "Ansible Tutorial Guide для начинающих"; -- "Ansible In Action".

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!