Цель урока: Перейти от теории к практике. Мы установим 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

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)