Тестирование Ansible простой командой
На этом шаге вы протестируете установку Ansible, выполнив простую команду на локальной системе. Перейдите в каталог проекта и используйте предварительно настроенный файл инвентаризации для запуска ad-hoc команды Ansible.
Перейдите в каталог проекта и протестируйте базовую функциональность ping:
cd /home/labex/project
ansible localhost -m ping
Модуль ping на самом деле не отправляет ICMP-пакеты; вместо этого он проверяет, может ли Ansible подключиться к целевому объекту и выполнить код Python. Успешный ответ будет выглядеть так:
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Давайте разберем этот вывод:
- localhost | SUCCESS: Показывает, что команда успешно выполнена на целевом объекте localhost
- ansible_facts: Содержит информацию о системе, обнаруженную во время выполнения
- discovered_interpreter_python: Путь к интерпретатору Python, который Ansible нашел и будет использовать
- changed: false: Указывает, что в системе не было внесено никаких изменений (ping доступен только для чтения)
- ping: "pong": Классический ответ, подтверждающий подключение Ansible
Ответ "pong" подтверждает, что Ansible работает правильно и может взаимодействовать с целевой системой.
Давайте также протестируем сбор информации о системе с помощью модуля setup:
ansible localhost -m setup -a "filter=ansible_distribution*"
Эта команда использует модуль setup для сбора фактов о системе, в частности, фильтруя информацию о дистрибутиве. Вы должны увидеть вывод, содержащий сведения о вашей системе Red Hat Enterprise Linux:
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "RedHat",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_search_string": "Red Hat",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "9",
"ansible_distribution_release": "Plow",
"ansible_distribution_version": "9.6",
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false
}
Понимание вывода фактов о системе:
- ansible_distribution: Название дистрибутива Linux (RedHat)
- ansible_distribution_file_parsed: Успешно ли Ansible прочитал файл дистрибутива
- ansible_distribution_file_path: Файл, содержащий информацию о дистрибутиве
- ansible_distribution_file_search_string: Текстовый шаблон, используемый для идентификации дистрибутива
- ansible_distribution_file_variety: Семейство дистрибутива (семейство RedHat)
- ansible_distribution_major_version: Основной номер версии (9)
- ansible_distribution_release: Кодовое название релиза (Plow)
- ansible_distribution_version: Полный номер версии (9.6)
- discovered_interpreter_python: Интерпретатор Python, обнаруженный Ansible
Это подтверждает, что Ansible может успешно собирать информацию о системе с целевого хоста, что необходимо для создания условной автоматизации на основе характеристик системы.