Перейти к содержанию

Модуль 3. Задание 7.

Решение

BR-SRV

Используем инвентарь из модуля 2 (задание 5).

Additional.iso

По заданию плейбук лежит в Additional.iso в папке playbook. На момент написания решения там есть get_hostname_address.yml, но он неполный, это одна задача без секции hosts, которая пишет результат в /tmp на самих машинах. Поэтому дописываем его сами, если образ обновят, этот шаг возможно уберём.

Копируем заготовку в /etc/ansible:

cp /mnt/additional/playbook/get_hostname_address.yml /etc/ansible/
mkdir -p /etc/ansible/PC-INFO

Дописываем до нормального плейбука. Отчёты сохраняются на BR-SRV (delegate_to: localhost) в /etc/ansible/PC-INFO/<имя компьютера>.yml:

/etc/ansible/get_hostname_address.yml
- name: Инвентаризация рабочих мест
  hosts: hq-srv,hq-cli
  gather_facts: true
  tasks:
    - name: получение данных с хоста
      copy:
        dest: /etc/ansible/PC-INFO/{{ ansible_hostname }}.yml
        content: |
          Hostname: {{ ansible_hostname }}
          IP_Address: {{ ansible_default_ipv4.address }}
      delegate_to: localhost

Запускаем:

ansible-playbook /etc/ansible/get_hostname_address.yml

Проверка:

ls /etc/ansible/PC-INFO
cat /etc/ansible/PC-INFO/*.yml