Устранение предупреждений интерпретатора Python в Ansible

AnsibleBeginner
Практиковаться сейчас

Введение

В рамках этого испытания вы столкнетесь с распространенной проблемой конфигурации Ansible, связанной с интерпретатором Python. При выполнении команд Ansible вы можете получать предупреждения об использовании интерпретатора Python по умолчанию. Ваша задача — устранить эти предупреждения путем правильной настройки среды. Это испытание проверит ваше умение работать с конфигурационными файлами Ansible и вносить необходимые корректировки для оптимизации рабочего окружения.

Настройка Ansible на использование корректного интерпретатора Python

Вам предоставлена предварительно настроенная среда Ansible. При попытке выполнить простую команду Ansible возникают предупреждения об интерпретаторе Python. Ваша задача — устранить эти уведомления и добиться того, чтобы команды выполнялись без ошибок, связанных с интерпретатором.

Чтобы увидеть эти предупреждения, выполните следующую команду в терминале:

ansible all -m ping

Вы должны увидеть вывод, похожий на этот:

[DEPRECATION WARNING]: Distribution ubuntu 22.04 on host localhost should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
localhost | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[DEPRECATION WARNING]: Distribution ubuntu 22.04 on host web1 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in version 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
web1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Ваша цель — убрать эти предупреждения и убедиться, что Ansible использует Python 3.

Задачи

  • Выявите предупреждения об интерпретаторе Python при запуске команды Ansible.
  • Создайте конфигурационный файл Ansible, чтобы указать правильный интерпретатор.
  • Проверьте, что предупреждения исчезли, повторно запустив команду.

Требования

  1. Все операции должны выполняться в директории /home/labex/project.
  2. Создайте файл конфигурации Ansible с именем ansible.cfg в директории /home/labex/project.
  3. Используйте соответствующий параметр конфигурации, чтобы установить интерпретатор Python на /usr/bin/python3.
  4. Файл инвентаризации (inventory) уже настроен по пути /etc/ansible/hosts (предоставлен в начальной конфигурации).

Пример

После правильной настройки Ansible выполнение команды не должно вызывать предупреждений об интерпретаторе. Вывод должен выглядеть примерно так:

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
web1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
✨ Проверить решение и практиковаться

Резюме

В этом испытании вы научились решать распространенную проблему настройки Ansible, связанную с интерпретатором Python. Вы столкнулись с предупреждениями об использовании устаревшего пути к Python и узнали, как настроить Ansible на использование Python 3. Создав файл конфигурации (ansible.cfg) и применив параметр interpreter_python для указания точного пути, вы обеспечили использование корректной версии языка. Это упражнение подчеркивает важность правильной настройки Ansible для бесшовной интеграции с системным окружением Python, что критически важно для чистого вывода команд и стабильной работы автоматизации.