
Цель урока: Перейти от теории к практике. Мы установим Ansible на наш VDS, создадим наш первый инвентарный файл (inventory), который описывает, какими серверами мы управляем, и выполним первые ad-hoc команды - простые однострочные команды Ansible для проверки связи и сбора информации с управляемых машин.
Часть 1: Практика. Установка Ansible
Ansible - это программа на Python, но устанавливается она как обычный пакет из стандартных репозиториев.
apt update
apt install -y ansible
После завершения установки проверьте, что все прошло успешно, запросив версию:
ansible --version
Вы увидите информацию об установленной версии Ansible, Python и т.д.

Часть 2: Практика. Инвентарный файл (Inventory)
Инвентарь - это сердце Ansible. Это простой текстовый файл, в котором перечислены все серверы, которыми вы хотите управлять. Это как телефонная книга для Ansible.
По умолчанию Ansible ищет этот файл в /etc/ansible/hosts, но для удобства мы создадим свой собственный в нашей рабочей директории.
Шаг 1: Создание рабочего каталога и файла инвентаря
# Перейдем в домашний каталог
cd ~
# Создадим специальный каталог для наших проектов Ansible
mkdir ansible_projects
cd ansible_projects
# Создадим наш первый файл инвентаря
nano inventory
Шаг 2: Наполнение инвентаря
Вставьте в редактор nano следующее содержимое:
# Это наш первый инвентарный файл
# Мы можем группировать серверы по их роли
[webservers]
localhost ansible_connection=local
Разбор этого файла:
-
[webservers]: Это название группы. Группировка очень удобна, когда у вас много серверов. Вы сможете сказать Ansible: "Примени эти настройки ко всей группе webservers".
-
localhost: Это имя хоста, которым мы управляем.
-
ansible_connection=local: Это очень важная переменная. Она говорит Ansible: "Для этого хоста не нужно подключаться по SSH, потому что это и есть та машина, на которой ты запущен. Выполняй все команды локально".
Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X).
Часть 3: Практика. Ad-hoc команды - быстрые команды "на лету"
Ad-hoc команда - это способ использовать Ansible для выполнения одной простой задачи без написания плейбуков. Это идеальный инструмент для быстрой проверки или выполнения одноразовых действий.
Базовый синтаксис:
ansible [ЦЕЛЬ] -i [ФАЙЛ_ИНВЕНТАРЯ] -m [МОДУЛЬ] -a "[АРГУМЕНТЫ_МОДУЛЯ]"
-
[ЦЕЛЬ]: К какой группе или хосту применить команду (например, webservers или all).
-
-i inventory: Указывает путь к нашему файлу инвентаря.
-
-m [МОДУЛЬ]: Указывает, какой модуль Ansible использовать.
-
-a "[...]": Аргументы, которые передаются модулю.
Пример 1: Проверка связи (модуль ping)
Модуль ping - это не обычный сетевой ping. Он проверяет, может ли Ansible подключиться к хосту и выполнить на нем Python-код. Это основной способ проверить, что все настроено правильно.
ansible webservers -i inventory -m ping
Ожидаемый результат:
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
-
localhost | SUCCESS: Имя хоста и статус "УСПЕХ".
-
"ping": "pong": Фирменный ответ модуля ping.
Если вы видите это, значит, Ansible работает, видит ваш инвентарь и может управлять localhost.
Пример 2: Выполнение простой команды (модуль command)
Модуль command позволяет выполнить любую простую команду на удаленном хосте.
# Узнаем время работы нашего сервера
ansible webservers -i inventory -m command -a "uptime -p"
Результат:
localhost | CHANGED | rc=0 >>
up 3 weeks, 1 day, 15 hours, 4 minutes
Ansible выполнил команду uptime -p и показал нам ее результат.
Пример 3: Сбор информации о системе (модуль setup)
Модуль setup - невероятно мощный. Он собирает огромное количество информации о системе (фактов), такой как версия ОС, количество памяти, IP-адреса, диски и т.д.
ansible webservers -i inventory -m setup
Вывод будет очень большим, в формате JSON. Вы увидите там все, что можно узнать о вашей системе. Эта информация (факты) будет активно использоваться нами в будущих плейбуках.
Часть 4: Конфигурационный файл Ansible (необязательно, но полезно)
Чтобы каждый раз не писать -i inventory, можно создать в нашем каталоге простой конфигурационный файл ansible.cfg.
Шаг 1: Создание файла
# Убедитесь, что вы в папке ~/ansible_projects
nano ansible.cfg
Шаг 2: Добавление настроек
[defaults]
inventory = ./inventory
host_key_checking = False
-
inventory = ./inventory: Говорит Ansible по умолчанию искать файл инвентаря в этом каталоге.
-
host_key_checking = False: Отключает проверку SSH-ключа хоста. Для localhost это неважно, но при работе с новыми удаленными серверами это избавляет от лишних вопросов.
Сохраните и выйдите.
Шаг 3: Проверка
Теперь вы можете выполнять ad-hoc команды гораздо короче:
ansible webservers -m ping
Ansible автоматически подхватит настройки из ansible.cfg.
Часть 5: Заключение
Поздравляю! Вы установили и настроили Ansible и выполнили свои первые команды. Это огромный шаг в мир автоматизации.
Вы научились:
-
Устанавливать Ansible на сервер, который будет выступать управляющим узлом.
-
Создавать инвентарный файл (inventory), чтобы описать управляемые серверы.
-
Понимать, что для управления самим собой используется специальная переменная ansible_connection=local.
-
Выполнять ad-hoc команды для быстрых проверок и выполнения задач.
-
Использовать ключевые модули: ping для проверки связи, command для выполнения команд и setup для сбора фактов о системе.
Ad-hoc команды - это мощный инструмент для быстрых задач, но истинная сила Ansible раскрывается в плейбуках.
На следующем, 58-м уроке, мы напишем наш первый плейбук (Playbook). Мы перейдем от однострочных команд к созданию полноценных сценариев автоматизации в формате YAML для установки и настройки программного обеспечения.
Перейти к просмотру - УРОК №58.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

