Ansible

Простая установка нескольких пакетов на CentOS с помощью Ansible

Простая установка нескольких пакетов на CentOS с помощью Ansible
В Ansible вы можете использовать dnf или же ням модуль для установки программных пакетов на хосты CentOS или RHEL. По умолчанию эти модули устанавливают только один программный пакет. Вы можете использовать dnf или же вкуснятина модуль несколько раз в вашей книге воспроизведения Ansible, чтобы установить столько программных пакетов, сколько вы хотите. Хотя это не самый эффективный способ сделать это, так как будет много повторений кода, которых мы хотели бы избежать, если это возможно. К счастью, мы можем использовать циклы, чтобы легко установить столько программных пакетов, сколько захотим, без повторения кода.

В этой статье показано, как установить несколько программных пакетов на хосты CentOS / RHEL с помощью цикла Ansible. Итак, приступим.

Предпосылки

Если вы хотите попробовать примеры из этой статьи,
1) На вашем компьютере должен быть установлен Ansible.
2) У вас должен быть как минимум хост CentOS / RHEL 7 или 8, настроенный для автоматизации Ansible.

На LinuxHint есть много статей, посвященных установке Ansible и настройке хостов для автоматизации Ansible. Вы можете проверить это при необходимости.

Настройка каталога проекта

Прежде чем двигаться дальше, мы создадим каталог проекта, чтобы все было немного организовано.

Чтобы создать каталог проекта centos-pkg / и все необходимые подкаталоги (в вашем текущем рабочем каталоге), выполните следующую команду:

$ mkdir -pv centos-pkg / плейбуки

После создания каталога проекта перейдите в каталог проекта, как показано ниже:

$ cd centos-pkg /

Затем создайте хозяева файл инвентаризации, как показано ниже:

$ nano хосты

Добавьте IP-адрес или DNS-имя хоста (vm3.нодекит.ком, в моем случае) ваших хостов CentOS / RHEL в файле инвентаризации (по одному хосту на строку).

Как только вы закончите, сохраните файл, нажав + Икс, с последующим Y а также .

Создайте файл конфигурации Ansible анзибль.cfg в каталоге вашего проекта следующим образом:

$ нано доступный.cfg

Затем введите следующие строки в анзибль.cfg файл.

[по умолчанию]
inventory = hosts
host_key_checking = Ложь

Как только вы закончите, сохраните анзибль.cfg файл, нажав + Икс, с последующим Y а также .

Попробуйте проверить связь со всеми хостами CentOS / RHEL, которые вы добавили в свой хозяева файл инвентаризации, как показано ниже:

$ ansible all -u ansible -m пинг

Как видите, мой хост CentOS 8 доступен.

Установка единого программного пакета

В этом разделе показано, как установить один программный пакет с помощью dnf или же ням модуль Ansible на ваших хостах CentOS / RHEL.

Сначала создайте новую пьесу install_package.ямл в пьесы / каталог, а именно:

$ nano playbooks / install_package.ямл

Затем введите следующие строки в поле install_package.ямл файл.

- хосты: все
пользователь: ansible
становятся истинными
задачи:
- имя: Установить пакет httpd
dnf:
имя: httpd
состояние: настоящее
update_cache: Истина

Как только вы закончите, сохраните файл, нажав + Икс, с последующим Y а также .

Здесь я добавил только одну задачу, Установить пакет httpd. Цель этой задачи - установить httpd пакет на CentOS / RHEL 8.

CentOS / RHEL 7 не использует dnf менеджер пакетов, он использует ням менеджер пакетов. Итак, если вы используете CentOS / RHEL 7, измените dnf к ням, как отмечено на скриншоте ниже. Никаких других изменений не требуется.

В название опция используется, чтобы сообщить dnf или же ням модуль имя пакета, который вы пытаетесь установить. В этом случае это будет httpd упаковка.

В государственный опция используется, чтобы сообщить dnf или же ням модуль действие (я.е. установить, обновить, удалить) он должен принять данный пакет. В этом случае действие настоящее время.

Поддерживаемые значения государственный варианты:

настоящее время - установит пакет, если он еще не установлен.

последний - установит пакет, если он еще не установлен; если уже установлен, модуль проверит наличие обновлений; если доступна обновленная версия пакета, он установит новую версию.

отсутствующий - удалит пакет, если он установлен.

Если update_cache опция установлена ​​на Правда, кеш репозитория пакетов DNF / YUM будет обновлен перед установкой пакета.

Запустить install_package.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_package.ямл

Как видите, playbook install_package.ямл бежал успешно.

Как видите, httpd пакет установлен на моем хосте CentOS 8, который я добавил на свой хозяева инвентарный файл.

Список установленных $ sudo dnf | grep httpd

Если вы используете CentOS / RHEL 7, используйте ням менеджер пакетов вместо dnf менеджер пакетов, чтобы проверить, установлен ли пакет.

Список $ sudo yum установлен | grep httpd

Установка нескольких пакетов программного обеспечения с помощью цикла with_items

В предыдущем разделе этой статьи было показано, как установить один программный пакет на ваш хост CentOS / RHEL с помощью Ansible dnf/ням модуль. В этом разделе показано, как установить несколько пакетов программного обеспечения на хосты CentOS / RHEL с помощью Ansible with_items петля.

Сначала создайте новую пьесу install_packages.ямл, следующим образом:

$ nano playbooks / install_packages.ямл

Введите следующие строки в install_packages.ямл файл.

- хосты: все
пользователь: ansible
становятся истинными
задачи:
- name: Установить все пакеты
dnf:
имя: 'item'
состояние: настоящее
update_cache: Истина
with_items:
httpd
php
vsftpd

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти install_packages.ямл файл.

Здесь я определил имена пакетов (httpd, php, vsftpd), который я хочу установить, используя with_items петля.

Я заменил имя пакета на переменную пункт. В пункт переменная будет обновляться именем пакета на каждой итерации.

Запустить install_packages.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_packages.ямл

Как видите, playbook install_packages.ямл бежал успешно.

В httpd, php, а также vsftpd пакеты установлены на моем хосте CentOS 8, как вы можете видеть на скриншоте ниже.

Список установленных $ sudo dnf | grep httpd
Список установленных $ sudo dnf | grep php
Список установленных $ sudo dnf | grep vsftpd

Установка нескольких пакетов программного обеспечения с помощью цикла Loop

Начиная с Ansible 2.5, рекомендуемый способ использования циклов в вашей книге - использование петля ключевое слово вместо with_items ключевое слово. Вот почему вы увидели предупреждающее сообщение, когда я запустил install_packages.ямл playbook в предыдущем разделе этой статьи.

Работа с петлями с помощью петля ключевое слово очень просто.

Сначала откройте playbook install_packages.ямл (из предыдущего примера) следующим образом:

$ nano playbooks / install_packages.ямл

в install_packages.ямл playbook, просто замените термин with_items со сроком петля, как отмечено на скриншоте ниже. Больше ничего менять не нужно.

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти install_packages.ямл файл.

Запустить install_packages.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_packages.ямл

Как видите, задача Установите все пакеты побежал dnf/ням модуль всего три раза; один раз для каждого цикла пункт.

В httpd, php, а также vsftpd пакеты установлены на моем хосте CentOS 8, как вы можете видеть на скриншоте ниже.

Список установленных $ sudo dnf | grep httpd
Список установленных $ sudo dnf | grep php
Список установленных $ sudo dnf | grep vsftpd

Установка нескольких программных пакетов с использованием синтаксиса массива

В предыдущих разделах этой статьи было показано, как использовать with_items а также петля циклы в Ansible для установки нескольких программных пакетов на CentOS / RHEL 7 или 8 без повторения кода. В этом разделе показано, как сделать то же самое с более простым синтаксисом массива.

Сначала откройте install_packages.ямл playbook, как показано ниже:

$ nano playbooks / install_packages.ямл

Удалить with_items или же петля раздел из задачи и измените название возможность ['httpd', 'php', vsftpd '], как отмечено на скриншоте ниже.

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти install_packages.ямл учебник.

Здесь каждая строка в кавычках внутри квадратных скобок ([]) - это элемент массива (в моем случае название программного пакета). Каждый элемент массива должен быть разделен запятой (,). Вы можете добавить столько элементов массива, сколько захотите. Я добавил всего три элемента, httpd, php, а также vsftpd.

Запустить install_packages.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_packages.ямл

Как видите, программные пакеты httpd, php, а также vsftpd установлены на моем хосте CentOS 8.

Список установленных $ sudo dnf | grep httpd
Список установленных $ sudo dnf | grep php
Список установленных $ sudo dnf | grep vsftpd

Заключение

В этой статье показано, как использовать with_items а также петля циклов, а также синтаксиса Array с помощью Ansible ням/dnf модуль для установки нескольких программных пакетов на хосты CentOS / RHEL 7 или 8.

Для получения дополнительной информации проверьте официальную документацию Ansible.

[1] Официальная документация циклов Ansible
[2] Официальная документация по Ansible with_items
[3] Официальная документация модуля Ansible dnf
[4] Официальная документация модуля Ansible yum

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...