Введение
Этот учебник проведет вас через процесс установки Ansible, мощного инструмента автоматизации ИТ-инфраструктуры с открытым исходным кодом, на операционной системе Ubuntu. Вы узнаете, как настроить Ansible и выполнять Ansible playbook для оптимизации задач управления вашей инфраструктурой.
Понимание Ansible
Ansible — это инструмент с открытым исходным кодом для развёртывания программного обеспечения, управления конфигурацией и развертывания приложений. Он разработан для простоты, эффективности и отсутствия необходимости в агентах, позволяя пользователям управлять и настраивать несколько удалённых систем одновременно.
Что такое Ansible?
Ansible — мощный инструмент автоматизации, позволяющий управлять вашей инфраструктурой, приложениями и службами декларативным и идемпотентным способом. Он использует простой, легкочитаемый язык YAML для определения желаемого состояния ваших систем, а затем выполняет необходимые задачи для достижения этого состояния.
Основные возможности Ansible
- Без агентов: Ansible не требует установки специального программного обеспечения или агентов на удалённых системах. Он использует SSH (или Windows Remote Management) для связи с целевыми системами.
- Декларативный подход: Ansible использует декларативный подход, где вы определяете желаемое состояние ваших систем, а Ansible позаботится о необходимых шагах для достижения этого состояния.
- Идемпотентность: Задачи Ansible разработаны для идемпотентности, что означает, что их можно запускать несколько раз без внесения нежелательных изменений.
- Модульная архитектура: Ansible имеет модульную архитектуру с широким набором встроенных модулей, которые могут использоваться для выполнения различных задач, таких как управление файлами, установка пакетов или взаимодействие с облачными службами.
- Простота и читаемость: Язык Ansible на основе YAML разработан для простоты и лёгкости чтения, что делает его доступным как для разработчиков, так и для системных администраторов.
Сценарии использования Ansible
Ansible может использоваться для широкого спектра задач, включая:
- Развёртывание инфраструктуры
- Управление конфигурацией
- Развёртывание приложений
- Оркестрация
- Безопасность и соответствие требованиям
- Непрерывная интеграция/непрерывная доставка (CI/CD)
Архитектура Ansible
Ansible использует архитектуру клиент-сервер, где управляющий узел Ansible (система, на которой установлен Ansible) взаимодействует с удалёнными целевыми системами (системами, которые вы хотите управлять) через SSH или Windows Remote Management.
graph TD
A[Управляющий узел Ansible] -- SSH/WinRM --> B[Целевая система 1]
A -- SSH/WinRM --> C[Целевая система 2]
A -- SSH/WinRM --> D[Целевая система 3]
Управляющий узел Ansible выполняет необходимые задачи на целевых системах, а целевые системы передают результаты обратно управляющему узлу.
Установка Ansible на Ubuntu
Предварительные условия
Перед установкой Ansible убедитесь, что у вас есть следующие предварительные условия:
- Система Ubuntu 22.04 LTS
- Установлен Python 3
- Права sudo или root
Установка Ansible
- Обновите индекс пакетов:
sudo apt update
- Установите необходимые пакеты:
sudo apt install software-properties-common
- Добавьте PPA Ansible (Архив личных пакетов) в список источников вашей системы:
sudo add-apt-repository --yes --update ppa:ansible/ansible
- Установите Ansible:
sudo apt install ansible
- Проверьте установку:
ansible --version
Должна отобразиться информация о версии Ansible.
Настройка Ansible
- Создайте файл инвентаризации Ansible:
sudo nano /etc/ansible/hosts
Добавьте целевые хосты в файл инвентаризации, например:
[webservers]
192.168.1.100
192.168.1.101
[databases]
192.168.1.200
192.168.1.201
- Создайте файл конфигурации Ansible:
sudo nano /etc/ansible/ansible.cfg
Добавьте желаемые параметры конфигурации, например:
[defaults]
inventory = /etc/ansible/hosts
remote_user = ubuntu
- Проверьте подключение Ansible:
ansible all -m ping
Эта команда отправит ping всем хостам в файле инвентаризации и проверит подключение.
Теперь Ansible успешно установлен на вашей системе Ubuntu 22.04 и настроен для управления целевыми хостами.
Выполнение Ansible Playbook
Что такое Ansible Playbook?
Ansible Playbook — это файл в формате YAML, определяющий желаемое состояние вашей инфраструктуры или приложения. Он содержит набор задач, выполняемых в определённом порядке для достижения желаемого состояния.
Структура Ansible Playbook
Базовый Ansible Playbook состоит из следующих элементов:
- Хосты: Целевые хосты или группы, на которых будет выполняться playbook.
- Задачи: Действия, которые Ansible будет выполнять на целевых хостах.
- Переменные: Значения, которые могут использоваться в течение всего playbook.
- Обработчики: Задачи, которые запускаются другими задачами.
Вот пример Ansible Playbook, устанавливающий веб-сервер Apache на группе хостов Ubuntu:
- hosts: webservers
tasks:
- name: Установить Apache
apt:
name: apache2
state: present
- name: Запустить Apache
service:
name: apache2
state: started
enabled: yes
Выполнение Ansible Playbook
Чтобы выполнить Ansible Playbook, следуйте этим шагам:
- Сохраните playbook в файл, например,
apache.yml. - Запустите playbook с помощью команды
ansible-playbook:
ansible-playbook apache.yml
Это выполнит задачи, определённые в playbook, на целевых хостах.
Параметры выполнения Playbook
Вы можете настроить выполнение playbook с помощью различных параметров, таких как:
- Ограничение: Выполнить playbook на определённом хосте или группе.
ansible-playbook apache.yml -l webservers - Проверка: Выполнить пробный запуск, чтобы увидеть, какие изменения будут внесены.
ansible-playbook apache.yml --check - Стать пользователем с повышенными правами: Выполнить playbook с повышенными привилегиями.
ansible-playbook apache.yml --become
Понимая и используя Ansible Playbook, вы можете легко автоматизировать развертывание и настройку вашей инфраструктуры и приложений на системах Ubuntu.
Резюме
К концу этого руководства вы получите глубокое понимание Ansible и его возможностей, а также знания для установки Ansible на вашей системе Ubuntu и начала автоматизации задач управления инфраструктурой с помощью Ansible playbook.


