Введение
В этой лабораторной работе вы узнаете, как установить Ansible Core на систему Red Hat Enterprise Linux (RHEL). Ansible – это мощный инструмент автоматизации, который позволяет управлять и настраивать системы, развертывать приложения и оркестрировать сложные ИТ-рабочие процессы.
Вы будете использовать менеджер пакетов dnf с привилегиями sudo для установки пакета ansible-core, который предоставляет основное ядро Ansible и инструменты командной строки. После установки вы проверите, что Ansible работает правильно, проверив его версию и запустив базовые команды.
Это фундаментальный навык для системных администраторов и DevOps-инженеров, работающих с системами Red Hat Enterprise Linux.
Установка Ansible Core с помощью dnf
На этом шаге вы установите пакет ansible-core с помощью менеджера пакетов dnf. Ansible Core предоставляет основной движок Ansible, включая ansible, ansible-playbook и другие основные инструменты командной строки, необходимые для задач автоматизации.
Менеджер пакетов dnf (Dandified YUM) является стандартным инструментом для управления программными пакетами в Red Hat Enterprise Linux. Поскольку установка программного обеспечения требует прав администратора, необходимо использовать команду sudo.
Выполните следующую команду, чтобы установить Ansible Core с автоматическим подтверждением:
sudo dnf install ansible-core -y
Флаг -y автоматически отвечает «yes» на все запросы, делая установку неинтерактивной. Система загрузит и установит ansible-core вместе с его зависимостями Python, включая Jinja2 для шаблонизации и PyYAML для обработки YAML.
Вы должны увидеть вывод, аналогичный этому, показывающий разрешение пакетов и ход установки:
Updating Subscription Management repositories.
Last metadata expiration check: ...
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ansible-core noarch 2.16.x-x.el9 rhel-9-appstream xx M
Installing dependencies:
python3-jinja2 noarch x.x.x-x.el9 rhel-9-appstream xxx k
python3-yaml x86_64 x.x.x-x.el9 rhel-9-appstream xxx k
...
Transaction Summary
================================================================================
Install XX Packages
Complete!
Проверка установки Ansible
Теперь, когда вы установили Ansible Core, давайте убедимся, что установка прошла успешно, проверив версию и подтвердив доступность основных инструментов командной строки.
Сначала проверьте версию Ansible, выполнив:
ansible --version
Эта команда отображает подробную информацию об установке Ansible, включая версию ядра, версию Python и местоположения различных компонентов. Вы должны увидеть вывод, подобный этому:
ansible [core 2.14.18]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/labex/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.21 (main, Feb 10 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Давайте разберемся, что означает каждая строка:
- ansible [core 2.14.18]: Показывает установленную версию Ansible Core
- config file: Указывает на основной файл конфигурации Ansible, содержащий настройки по умолчанию
- configured module search path: Каталоги, в которых Ansible ищет пользовательские модули
- ansible python module location: Где установлен основной код Python Ansible
- ansible collection location: Каталоги, в которых хранятся коллекции Ansible (упакованные модули и плагины)
- executable location: Фактическое местоположение исполняемого файла команды ansible
- python version: Версия интерпретатора Python, которую использует Ansible
- jinja version: Версия механизма шаблонизации, используемого Ansible для динамического контента
- libyaml = True: Подтверждает, что быстрый парсер YAML доступен для повышения производительности
Это подтверждает, что Ansible правильно установлен и готов к использованию. Далее давайте также проверим, что команда ansible-playbook доступна:
ansible-playbook --version
Вы должны увидеть аналогичную информацию о версии для инструмента ansible-playbook, который необходим для запуска плейбуков Ansible.
Тестирование 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 может успешно собирать информацию о системе с целевого хоста, что необходимо для создания условной автоматизации на основе характеристик системы.
Изучение доступных модулей Ansible
Ansible поставляется с сотнями встроенных модулей для различных задач автоматизации. Давайте рассмотрим некоторые из доступных модулей, чтобы понять, какие возможности сразу доступны после установки.
Чтобы увидеть список доступных модулей, выполните:
ansible-doc -l | head -20
Команда ansible-doc -l выводит список всех доступных модулей, а использование head -20 показывает первые 20 модулей. Это дает вам представление о широких возможностях автоматизации, доступных с Ansible. Вы увидите вывод, похожий на следующий:
ansible.builtin.add_host Add a host (and alternatively a grou...
ansible.builtin.apt Manages apt-packages
ansible.builtin.apt_key Add or remove an apt key
ansible.builtin.apt_repository Add and remove APT repositories
ansible.builtin.assemble Assemble configuration files from fr...
ansible.builtin.assert Asserts given expressions are true
ansible.builtin.async_status Obtain status of asynchronous task
ansible.builtin.blockinfile Insert/update/remove a text block su...
ansible.builtin.command Execute commands on targets
ansible.builtin.copy Copy files to remote locations
ansible.builtin.cron Manage cron.d and crontab entries
ansible.builtin.debconf Configure a .deb package
ansible.builtin.debug Print statements during execution
ansible.builtin.dnf Manages packages with the `dnf' pack...
ansible.builtin.dpkg_selections Dpkg package selection selections
ansible.builtin.expect Executes a command and responds to p...
ansible.builtin.fail Fail with custom message
ansible.builtin.fetch Fetch files from remote nodes
ansible.builtin.file Manage files and file properties
ansible.builtin.find Return a list of files based on spec...
Понимание формата списка модулей:
- ansible.builtin.: Указывает, что это встроенные модули, которые поставляются с Ansible Core
- Module name (Имя модуля): Имя, которое вы используете при вызове модуля в плейбуках или ad-hoc командах
- Description (Описание): Краткое объяснение того, что делает модуль
Некоторые важные модули, которые вы будете часто использовать:
- command (команда): Выполнение команд оболочки на целевых системах
- copy (копирование): Копирование файлов с вашей управляющей машины на удаленные хосты
- dnf: Установка, обновление или удаление пакетов в системах Red Hat
- file (файл): Создание каталогов, установка разрешений или управление свойствами файлов
- debug (отладка): Вывод сообщений во время выполнения плейбука для устранения неполадок
Чтобы получить подробную документацию по конкретному модулю, вы можете использовать команду ansible-doc с именем модуля. Например, чтобы узнать о модуле copy:
ansible-doc copy
Это отобразит подробную документацию по модулю copy, включая примеры и описания параметров. Команда ansible-doc предоставляет подробную документацию по любому модулю Ansible, что упрощает изучение использования различных возможностей автоматизации. Нажмите q, чтобы выйти из средства просмотра документации, когда закончите чтение.
Резюме
В этой лабораторной работе вы успешно научились устанавливать и проверять Ansible Core в системе Red Hat Enterprise Linux. Вот что вы сделали:
Установили Ansible Core: Вы использовали команду
sudo dnf install ansible-core -yдля установки основного пакета Ansible и его зависимостей из официальных репозиториев Red Hat.Проверили установку: Вы подтвердили, что Ansible был правильно установлен, проверив версию команд
ansibleиansible-playbook.Протестировали базовую функциональность: Вы выполнили простые команды Ansible, чтобы убедиться, что установка работает правильно, в том числе:
- Использование модуля
pingдля проверки подключения - Использование модуля
setupдля сбора фактов о системе
- Использование модуля
Изучили доступные модули: Вы узнали, как находить и читать документацию для обширной библиотеки модулей Ansible с помощью
ansible-doc.
Теперь у вас есть полностью функциональная установка Ansible на RHEL, и вы понимаете основные команды, необходимые для начала автоматизации вашей инфраструктуры. Этот фундамент подготовит вас к более продвинутым темам Ansible, таким как написание плейбуков, управление инвентарями и реализация сложных рабочих процессов автоматизации.



