Модуль 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