Требуемые условия завершения
Задача:
- Project 2 – Добавление A записи на DNS сервере
- Проект должен быть выполнен средствами Ansible
- Используйте папку project_2
- В качестве плейбука используйте файл playbook_2.yml в каталоге project_2
- Проект должен включать в себя все необходимые действия по добавлении записи на DNS сервере для разрешения доменного имени сайта
- Используйте DNS сервер настроенный в 1 день
- Для указания имени сайта и его адрес используйте внешние переменные
Вариант реализации:
ANS:
- Из под пользователя user переходим в директорию /opt/ansible:
cd /opt/ansible
- Создаём первый playbook_2.yml в директории project_2:
vim project_2/playbook_2.yml
-
- Содержимое playbook_2.yml:
- данный playbook - выполняет следующее:
- определяются внешние переменные dns_record_name и dns_record_address - которые необходимо определить при запуске playbook-сценария с ключом -e или --extra-vars;
- приведён пример каким образом необходимо передавать значение внешних переменных при запуске playbook-сценария;
- добавляется строка в файл в которой содердатся все остальные записи для зоны прямого просмотра;
- в случае если данная строка добавляется первый раз (changed) - тогда производится перезапуск службы named, а если эта строка уже присутствовала (ok) - тогда перезапуск службы named - не происходит
- данный playbook - выполняет следующее:
- Содержимое playbook_2.yml:
---
- name: Project 2 – Adding A record to the DNS server
hosts: Router
become: true
vars:
# Extra vars, examples: -e "dns_record_name=web dns_record_address=192.168.100.10"
dns_record_name: ""
dns_record_address: ""
tasks:
- name: Adding records on the DNS server
lineinfile:
path: /opt/dns/company.prof.db
line: "{{ dns_record_name }} IN A {{ dns_record_address }}"
state: present
notify:
- Restarted named
handlers:
- name: Restarted named
service:
name: named
state: restarted
Можно посмотреть в сторону модуля nsupdate
- Выполняем запуск playbook-сценария с указанием внешних переменных и их значений:
ansible-playbook project_2/playbook_2.yml -e "dns_record_name=web dns_record_address=192.168.100.10"
-
- Результат:
ansible-playbook project_2/playbook_2.yml -e "dns_record_name=site dns_record_address=192.168.100.20"
-
- Результат:
- Проверяем:
Последнее изменение: среда, 3 июля 2024, 15:48