Тестирование пользовательской конфигурации
Теперь, когда у нас есть наша пользовательская конфигурация, давайте создадим простой плейбук для ее тестирования. Это поможет нам понять, как наши изменения в конфигурации влияют на поведение Ansible.
Создайте новый файл с именем test_config.yml в директории /home/labex/project:
nano /home/labex/project/test_config.yml
Обновите содержимое следующим образом:
---
- name: Test Custom Configuration
hosts: all
tasks:
- name: Display remote user
debug:
msg: "Connected as user: {{ ansible_user }}"
- name: Display privilege escalation info
debug:
msg: "Privilege escalation is {{ 'enabled' if ansible_become | default(false) else 'disabled' }}"
- name: Show Ansible configuration
debug:
msg: "Inventory file: {{ lookup('config', 'DEFAULT_HOST_LIST') }}"
- name: Check if become is enabled in ansible.cfg
command: grep "become = True" /home/labex/project/ansible.cfg
register: become_check
changed_when: false
failed_when: false
- name: Display become setting from ansible.cfg
debug:
msg: "Become is {{ 'enabled' if become_check.rc == 0 else 'disabled' }} in ansible.cfg"
В этом обновленном плейбуке были сделаны следующие изменения:
- Мы добавили значение по умолчанию для
ansible_become, чтобы избежать ошибки о неопределенной переменной.
- Мы добавили два новых таска, которые напрямую проверяют файл
ansible.cfg на наличие настройки become, что дает более точное представление о вашей конфигурации.
Теперь запустим обновленный плейбук:
ansible-playbook /home/labex/project/test_config.yml
Он должен запуститься без ошибок и предоставить вам информацию о вашей конфигурации Ansible.
Кроме того, давайте избавимся от предупреждения о deprecation, обновив файл ansible.cfg:
nano /home/labex/project/ansible.cfg
Добавьте следующую строку в раздел [defaults]:
interpreter_python = /usr/bin/python3
Ваш файл ansible.cfg теперь должен выглядеть примерно так:
[defaults]
inventory = /home/labex/project/inventory
remote_user = labex
host_key_checking = False
stdout_callback = yaml
interpreter_python = /usr/bin/python3
[privilege_escalation]
become = True
become_method = sudo
become_user = root
become_ask_pass = False
Сохраните изменения и выйдите из редактора.
Теперь, когда вы снова запустите плейбук:
ansible-playbook /home/labex/project/test_config.yml
Вы должны увидеть вывод без предупреждения о deprecation, и он должен корректно отображать ваши настройки конфигурации.