Найти в Дзене
evlchrrrx (linux guides)

Настройка инвентаризации машин в сети через Ansible

В сфере системного администрирования важно иметь актуальную информацию о каждом устройстве в инфраструктуре. Один из надёжных способов автоматизации сбора такой информации — использование Ansible. В данной статье мы реализуем механизм инвентаризации машин управляющего узла. С помощью Playbook мы сформируем отчёты о каждом хосте в виде файлов формата YAML, где будут содержаться такие данные, как имя хоста и его IP-адрес. Всё это позволит упростить администрирование и ускорить диагностику сети. Первоначальная настройка ANSIBLE была в предыдущей статье. Для настройки инвентаризации нужно будет проделать следующие действия. Во-первых необходимо создать каталог, в котором будут размещены отчеты о рабочих местах: mkdir /etc/ansible/PC_INFO Далее, создадим плейбук /etc/ansible/inventory.yml со следующим содержимым: После заполнения файла проверим работу, командой: ansible-playbook /etc/ansible/inventory.yml --- - name: Инвентаризация машин HQ-SRV и HQ-CLI hosts: - HQ-SRV - HQ-CLI gather-fact

В сфере системного администрирования важно иметь актуальную информацию о каждом устройстве в инфраструктуре. Один из надёжных способов автоматизации сбора такой информации — использование Ansible. В данной статье мы реализуем механизм инвентаризации машин управляющего узла. С помощью Playbook мы сформируем отчёты о каждом хосте в виде файлов формата YAML, где будут содержаться такие данные, как имя хоста и его IP-адрес. Всё это позволит упростить администрирование и ускорить диагностику сети.

Первоначальная настройка ANSIBLE была в предыдущей статье.

Для настройки инвентаризации нужно будет проделать следующие действия.

Во-первых необходимо создать каталог, в котором будут размещены отчеты о рабочих местах:

mkdir /etc/ansible/PC_INFO

Далее, создадим плейбук /etc/ansible/inventory.yml со следующим содержимым:

После заполнения файла проверим работу, командой:

ansible-playbook /etc/ansible/inventory.yml

---

- name: Инвентаризация машин HQ-SRV и HQ-CLI

hosts:

- HQ-SRV

- HQ-CLI

gather-facts: no

tasks:

- name: Создать отчёт с информацией рабочем месте

delegate: localhost

copy:

dest: "/etc/ansible/PC_INFO/{{ ansible_hostname }}.yml"

content:

---

Имя компьютера: "{{ ansible_hostname }}"

IP-адрес компьютера: "{{ ansible_default_ipv4.route }}"

Мы должны увидеть следующую картину:

Проверим наличие и содержимое, созданных отчетов:

ls -la /etc/ansible/PC_INFO

cat /etc/ansible/PC_INFO/hq-cli.yml

cat /etc/ansible/PC_INFO/hq-srv.yml

Как можно заметить, отчеты созданы и содержат необходимую информацию о машинах.

Задание выполнено успешно спасибо за прочтение!

-2

Создадим также каталог, в котором будут размещены резервные копии конфигураций маршрутизаторов:

mkdir /etc/ansible/NETWORK_INFO

И создаём сам плейбук /etc/ansible/backup.yml со следующим содержимым:

Абсолютно также, как и в предыдущем задании, проверяем его работу, командой:

ansible-playbook /etc/ansible/backup.yml

---

name: Резервное копирование конфигурации маршрутизаторов HQ-RTR и BR-RTR

hosts:

- HQ-RTR

- BR-RTR

gather_facts:

tasks:

- name: Создание локальных папок для резервных копий

ansible.builtin.file:

path: "/etc/ansible/NETWORK_INFO/{{ inventory_hostname }}/{{ item }}"

state: directory

loop:

- "frr"

delegate: localhost

name: Копирование конфигурации FRR

ansible.builtin.fetch:

src: "/etc/frr/{{ item }}"

dest: "/etc/ansible/NETWORK_INFO/{{ inventory_hostname }}/frr/"

flat: yes

loop:

- "daemons"

- "frr.conf"

- "frr.conf.sav"

- "vtysh.conf"

become: yes

name: Копирование сохранённых правил iptables

ansible.builtin.fetch:

src: /etc/iptablesRules

dest: /etc/ansible/NETWORK_INFO/{{ inventory_hostname }}/iptablesRules

flat: yes

become: yes

name: Копирование конфигурации сетевых интерфейсов

ansible.builtin.fetch:

src: /etc/network/interfaces

dest: /etc/ansible/NETWORK_INFO/{{ inventory_hostname }}/interfaces

flat: yes

become: yes

Как и в прошлом задании, Ansible помечает результат как changed, так как фактическое состояние системы меняется. При первом запуске плейбука так и должно быть.

И если запустить его ещё раз, то Ansible покажет для тех же задач статус ok, потому что требуемое состояние уже достигнуто и ничего менять не нужно.

Проверим наличие созданных отчетов:

ls -la /etc/ansible/NETWORK_INFO

ls -la /etc/ansible/NETWORK_INFO/HQ-RTR

ls -la /etc/ansible/NETWORK_INFO/BR-RTR

Задание выполнено успешно спасибо за прочтение!