Найти в Дзене
Я у мамы сисадмин

Модуль 2. Задание 4

Сконфигурируйте ansible на сервере BR-SRV # dnf install ansible -y Чтобы заходить на удаленные машины, пользователь на BR-SRV (sshuser или root) должен создать пару из закрытого/открытого RSA ключа. Это делается следующей командой:
# ssh-keygen -t rsa
В результате в каталоге /home/sshuser/.ssh или /root/.ssh будут созданы файлы ключей:
ls -l ~/.sshid_rsa - закрытый ключ
id_rsa.pub - открытый ключ Заходим под пользователем sshuser # su sshuser Создаем пару ключей # ssh-keygen -t rsa Копируем открытый SSH-ключ на удаленные устройства под пользователем sshuser: SSH-ключи для Ansible рекомендуется копировать для того пользователя, под которым будут выполняться команды Ansible. Обычно это обычный локальный пользователь, на котором запускаются команды Копируем ключ для пользователя sshuser на HQ-SRV
На HQ-SRV ssh порт изменен, указываем его ssh-copy-id -p 2024 sshuser@192.168.100.2 Копируем ключ для пользователя user на HQ-CLI ssh-copy-id user@192.168.100.66 Копируем ключ для пользовате
Оглавление

Задание

Сконфигурируйте ansible на сервере BR-SRV

  • Сформируйте файл инвентаря, в инвентарь должны входить HQ-SRV, HQ-CLI, HQ-RTR и BR-RTR
  • Рабочий каталог ansible должен располагаться в /etc/ansible
  • Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV

Реализация

Установка Ansible

# dnf install ansible -y

Создание пары SSH-ключей.

Чтобы заходить на удаленные машины, пользователь на BR-SRV (sshuser или root) должен создать пару из закрытого/открытого RSA ключа. Это делается следующей командой:
# ssh-keygen -t rsa
В результате в каталоге /home/sshuser/.ssh или /root/.ssh будут созданы файлы ключей:
ls -l ~/.sshid_rsa - закрытый ключ
id_rsa.pub - открытый ключ

Заходим под пользователем sshuser

# su sshuser

Создаем пару ключей

# ssh-keygen -t rsa

Копируем открытый SSH-ключ на удаленные устройства под пользователем sshuser:
SSH-ключи для Ansible рекомендуется копировать для того пользователя, под которым будут выполняться команды Ansible. Обычно это обычный локальный пользователь, на котором запускаются команды

Копируем ключ для пользователя sshuser на HQ-SRV
На HQ-SRV ssh порт изменен, указываем его

ssh-copy-id -p 2024 sshuser@192.168.100.2

Копируем ключ для пользователя user на HQ-CLI

ssh-copy-id user@192.168.100.66

Копируем ключ для пользователя net_admin на HQ-RTR

ssh-copy-id net_admin@172.16.4.2

Копируем ключ для пользователя net_admin на BR-RTR

ssh-copy-id net_admin@172.16.5.2

Подготовка файла инвентаря (hosts)

Для того чтобы Ansible знал, на каких хостах необходимо выполнять определенные действия, используется файл инвентаря. По умолчанию /etc/ansible/hosts.
В нем указываются IP-адреса или доменные имена необходимых серверов.

Открываем файл инвентаря /etc/ansible/hosts

nano /etc/ansible/hosts

Для создания файла инвентаря достаточно поместить в него список хостов (каждый новый хост – с новой строки). Имена хостов и IP-адреса взаимозаменяемы. В файле инвентаря распределим устройства по группам (HQ и BR).

Сначала указывается название группы в квадратных скобках, затем перечисляются хосты.
Имена хостов прописываются в виде dns-имени хоста или ip.
После названия хоста можно указать параметры подключения к хосту в одну строку.

И в начале файла пишем

где:
ansible_port - Номер порта ssh, если не 22
ansible_user - Использовать имя пользователя ssh по умолчанию.

Запуск команд

Что бы запустить модуль ping на всех хостах, перечисленных файле инвентаря /etc/ansible/hosts.

ansible all -m ping

Может появиться предупреждение про обнаружение интерпретатора Python, на целевом хосте

-2

Для управления поведением обнаружения в глобальном масштабе необходимо в файле конфигурации ansible /etc/ansible/ansible.cfg в разделе [defaults] прописать ключ interpreter_python с параметром auto_silent. В большинстве дистрибутивов прописываем вручную.

# nano /etc/ansible/ansible.cfg

Прописываем вручную

-3
Запускаем комунду ping на всех хостах

-4