Добавить в корзинуПозвонить
Найти в Дзене

ANSIBLE от А до Я

Цель работы Создать рабочий каталог Ansible, настроить инвентарь для четырёх хостов (сервер, клиент, два маршрутизатора) и выполнить успешный ping-тест (Ansible ping module) с управляющей машины BR-SRV на все остальные устройства без ошибок и предупреждений. Выполните на сервере BR-SRV: apt-get update && apt-get install -y ansible sshpass mkdir -p /etc/ansible
cd /etc/ansible Отредактируйте файл /etc/ansible/hosts: vim /etc/ansible/hosts Приведите его содержимое к следующему виду (INI-формат): [Servers]
HQ-SRV ansible_host=192.168.100.2
[Routers]
HQ-RTR ansible_host=10.10.10.1
BR-RTR ansible_host=192.168.0.1
[Clients]
HQ-CLI ansible_host=192.168.200.2
[Servers:vars]
ansible_user=sshuser
ansible_password=P@ssword
ansible_port=2026
[Routers:vars]
ansible_user=net_admin
ansible_password=P@ssword
ansible_connection=network_cli
ansible_network_os=ios
[Clients:vars]
ansible_user=user
ansible_password=resu
[all:vars]
ansible_python_interpreter=/usr/bin/python3 Пояснения: Создайте файл /
Оглавление

Цель работы

Создать рабочий каталог Ansible, настроить инвентарь для четырёх хостов (сервер, клиент, два маршрутизатора) и выполнить успешный ping-тест (Ansible ping module) с управляющей машины BR-SRV на все остальные устройства без ошибок и предупреждений.

Часть 1. Подготовка управляющего узла (BR-SRV)

1.1 Установка Ansible и sshpass

Выполните на сервере BR-SRV:

apt-get update && apt-get install -y ansible sshpass

1.2 Создание рабочего каталога Ansible

mkdir -p /etc/ansible
cd /etc/ansible

1.3 Создание файла инвентаря

Отредактируйте файл /etc/ansible/hosts:

vim /etc/ansible/hosts

Приведите его содержимое к следующему виду (INI-формат):

[Servers]
HQ-SRV ansible_host=192.168.100.2

[Routers]
HQ-RTR ansible_host=10.10.10.1
BR-RTR ansible_host=192.168.0.1

[Clients]
HQ-CLI ansible_host=192.168.200.2

[Servers:vars]
ansible_user=sshuser
ansible_password=P@ssword
ansible_port=2026

[Routers:vars]
ansible_user=net_admin
ansible_password=P@ssword
ansible_connection=network_cli
ansible_network_os=ios

[Clients:vars]
ansible_user=user
ansible_password=resu

[all:vars]
ansible_python_interpreter=/usr/bin/python3

Пояснения:

  • Для серверов используется SSH на порту 2026.
  • Для маршрутизаторов — сетевое подключение network_cli и ОС ios (EcoRouterOS совместим по синтаксису).
  • Для клиентов — обычный SSH-доступ.
  • Глобально задан интерпретатор Python 3.

1.4 Настройка ansible.cfg

Создайте файл /etc/ansible/ansible.cfg:

vim /etc/ansible/ansible.cfg

Добавьте следующие строки:

[defaults]
inventory = /etc/ansible/hosts
host_key_checking = False

Параметр host_key_checking = False отключает проверку ключей хостов (удобно для лабораторного стенда).

1.5 Установка необходимых коллекций и библиотек

Установите коллекции для работы с сетевыми устройствами:

ansible-galaxy collection install ansible.netcommon
ansible-galaxy collection install cisco.ios

Установите менеджер пакетов Python и библиотеку ansible-pylibssh:

apt-get install -y python3-module-pip # если используется ALT Linux или аналоги
# Для Ubuntu / Debian:
apt-get install -y python3-pip

pip3 install ansible-pylibssh

Часть 2. Настройка маршрутизаторов (HQ-RTR и BR-RTR)

На каждом маршрутизаторе с ОС «EcoRouterOS» выполните из режима конфигурации:

conf t
security none
exit

Это разрешит подключения по SSH без дополнительных проверок (упрощение для учебной среды).

Часть 3. Проверка работы

С управляющего узла BR-SRV выполните команду:

ansible -m ping all

Ожидаемый результат:

HQ-SRV | SUCCESS => {
"changed": false,
"ping": "pong"
}
HQ-CLI | SUCCESS => {
"changed": false,
"ping": "pong"
}
HQ-RTR | SUCCESS => {
"changed": false,
"ping": "pong"
}
BR-RTR | SUCCESS => {
"changed": false,
"ping": "pong"
}

Все строки должны быть зелёного цвета (в цветном выводе Ansible), поле ping иметь значение pong. Предупреждения и ошибки отсутствуют.

Возможные проблемы и их решение

ПроблемаРешениеHost key verification failedДобавить host_key_checking = False в ansible.cfgModuleNotFoundError: No module named 'paramiko'Установить через pip install paramikoНет доступа по SSH к маршрутизаторуУбедиться, что security none выполнен на EcoRouterOSInvalid port specifiedПроверить, что параметр ansible_port указан только для тех групп, где он нужен

Итог

Вы успешно развернули управляющий узел Ansible (BR-SRV), настроили инвентарь для пяти устройств, разрешили SSH-доступ на EcoRouterOS и выполнили успешный ansible ping всех хостов. Такая конфигурация является базой для дальнейшего управления конфигурацией сети с помощью Ansible (playbooks, шаблоны, факты).