Site icon 8HOST.COM

Основы управления конфигурацией с помощью Ansible

Управление конфигурацией – это автоматизированный процесс внесения изменений в систему, который обеспечивает целостность конфигураций в кластере. Обычно для этого используются инструменты, которые облегчают автоматизацию и отслеживание.

В контексте серверов и кластеров управление конфигурацией также часто называют IT-автоматизацией или оркестровкой серверов. Оба термина подчеркивают практические аспекты управления конфигурацией и возможность управления несколькими системами с центрального сервера.

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

Преимущества использования инструментов управления конфигурацией

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

Многие преимущества управления конфигурацией связаны с возможностью определять инфраструктуру как код. Это позволяет вам:

Кроме того, инструменты управления конфигурацией позволяют централизованно управлять сотнями серверов, что может значительно повысить эффективность и целостность вашей серверной инфраструктуры.

Краткий обзор Ansible

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

Сценарии оркестровки Ansible пишутся на YAML, дружественном и удобном стандарте сериализации данных, который не привязан к конкретному языку программирования. Это позволяет пользователям создавать сложные сценарии оркестровки более интуитивно (по сравнению с аналогичными инструментами этой же категории).

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

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

Основные понятия Ansible

Давайте ознакомимся с терминологией Ansible.

Главная нода – это сервер, на который вы устанавливаете Ansible и с которого он подключается ко всем остальным нодам кластера. У вас может быть несколько главных нод. В качестве главной ноды можно настроить любую систему, которая способна обслуживать с Ansible (включая персональные компьютеры или ноутбуки, использующие Linux или Unix). В настоящее время Ansible не работает на хостах Windows, но вы можете обойти это ограничение, настроив виртуальную машину под управлением Linux и запустив Ansible оттуда.

Управляемые ноды – это серверы, которыми вы управляете с помощью Ansible. Ansible требует, чтобы управляемые ноды были доступны по SSH и чтобы на них был установлен Python 2 (версия 2.6+) или Python 3 (версия 3.5+). В качестве управляемых нод Ansible поддерживает разные операционные системы, в том числе Windows.

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

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

Плейбук – это файл, который содержит упорядоченный список задач и несколько других указаний, которые помогают Ansible понять, какие хосты являются целью этой автоматизации, нужно ли использовать систему повышения привилегий для выполнения этих задач. Также в файле есть дополнительные разделы для определения переменных или включения файлов. Ansible выполняет задачи последовательно, а полное выполнение плейбука называется плей. Плейбуки пишутся в формате YAML.

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

Роль – это набор плейбуков и связанных файлов, организованных в предопределенную структуру, известную Ansible. Роли облегчают повторное использование и перепрофилирование плейбуков в общие пакеты автоматизации для конкретных целей, таких как установка веб-сервера, установка среды PHP или настройка сервера MySQL.

Заключение

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

Читайте также: