Предпосылки
Чтобы включить репозиторий EPEL на машинах CentOS 7 или CentOS 8 с Ansible:
- На вашем компьютере должен быть установлен Ansible.
- У вас должны быть машины CentOS 7 или CentOS 8, настроенные для автоматизации Ansible.
На LinuxHint есть много статей, посвященных установке Ansible и настройке хостов для автоматизации Ansible. Вы можете проверить эти статьи, если это необходимо для ваших целей.
Включение репозитория EPEL на хостах CentOS
Сначала создайте каталог проекта ~ / проект с помощью следующей команды:
$ mkdir -pv ~ / проект / плейбуки
Перейдите к ~ / проект каталог с помощью следующей команды:
$ cd ~ / проект
Создать новый файл хозяева в каталоге проекта и откройте его с помощью текстового редактора nano следующим образом:
$ nano хосты
Пустой файл хозяева должен быть создан и открыт с помощью текстового редактора nano.
Введите IP-адреса или DNS-имена целевых компьютеров CentOS 7 и CentOS 8 (на которых вы хотите включить репозиторий EPEL) в поле Centos раздел хозяева файл, как показано ниже:
[centos]192.168.20.169
192.168.20.222
Здесь, 192.168.20.169 это IP-адрес моей виртуальной машины CentOS 8 и 192.168.20.222 это IP-адрес моей виртуальной машины CentOS 7. Это будет другим для вас. Обязательно замените образцы IP-адресов своим собственным списком.
ПРИМЕЧАНИЕ: Вы можете найти IP-адреса ваших хостов CentOS с помощью следующей команды:
$ hostname -I
Если на ваших хостах CentOS настроены DNS-имена, вы сможете найти их с помощью следующей команды:
$ hostname -A
Финал хозяева файл должен выглядеть так, как показано на скриншоте ниже.
Теперь сохраните файл hosts, нажав
Создайте файл конфигурации Ansible анзибль.cfg следующим образом:
$ нано доступный.cfg
Введите следующие строки в анзибле.cfg файл:
[по умолчанию]инвентарь =./ хосты
По завершении этого шага сохраните файл, нажав
Теперь создайте новую пьесу Ansible enable_epel_repo.ямл в пьесы / каталог следующим образом:
$ nano playbooks / enable_epel_repo.ямл
Затем введите следующие коды в поле enable_epel_repo.ямл файл:
- хосты: centosпользователь: ansible
задачи:
- name: Включить репозиторий EPEL в CentOS 8
dnf:
имя: эпель-релиз
состояние: последнее
становятся истинными
когда: ansible_facts ['os_family'] == 'RedHat' и ansible_facts
['distribution_major_version'] == '8'
- name: Включить репозиторий EPEL в CentOS 7
ням:
имя: эпель-релиз
состояние: последнее
становятся истинными
когда: ansible_facts ['os_family'] == 'RedHat' и ansible_facts
['distribution_major_version'] == '7'
В этом коде:
хосты: centos, выбирает только хосты в Centos группа из хозяева файл.
пользователь: ansible, имя пользователя SSH хостов (где Ansible будет запускать задачи) будет анзибль.
Я определил 2 задачи здесь. Один для хостов CentOS 8 и один для хостов CentOS 7. Причина, по которой я сделал это таким образом, заключается в том, что диспетчер пакетов по умолчанию для CentOS 8 - это DNF, а CentOS 7 - это YUM. Одна задача (первая задача) будет использовать диспетчер пакетов DNF и будет выполняться только на хостах CentOS 8. Другая задача (последняя задача) будет использовать менеджер пакетов YUM и будет выполняться только на хостах CentOS 7.
Эти две задачи практически идентичны. Единственные отличия - это модули диспетчера пакетов (dnf а также ням) используется в задачах и коде проверки версии CentOS.
dnf а также ням Модули Ansible принимают одинаковые параметры.
Здесь, имя: эпель-релиз, устанавливаемый пакет - это эпель-релиз.
состояние: последнее, посылка эпель-релиз должен быть установлен. Если пакет уже установлен и доступна обновленная версия, то пакет будет обновлен.
когда: состояние, если условие является правда, тогда задача будет запущена. В противном случае задача не запустится.
ansible_facts, используется для доступа к переменным хоста Ansible.
ansible_facts ['os_family'] == 'RedHat', проверяет, является ли ОС хоста CentOS или RedHat.
ansible_facts ['distribution_major_version'] == '8', проверяет, является ли версия ОС хоста 8 (в данном случае CentOS 8 или RedHat 8).
ansible_facts ['distribution_major_version'] == '7', проверяет, является ли версия ОС хоста 7 (в данном случае CentOS 7 или RedHat 7).
Затем сохраните enable_epel_repo.ямл файл, нажав
Теперь вы можете запустить сценарий Ansible следующим образом:
Плейбуки $ ansible-playbook / enable_epel_repo.ямл
Плейбук должен работать без ошибок, а репозиторий EPEL должен быть включен как на хостах CentOS 7, так и на CentOS 8.
Как видите, на моем хосте CentOS 8 включен репозиторий EPEL.
Как видите, на моем хосте CentOS 7 включен репозиторий EPEL.
Итак, вот как вы включаете репозиторий EPEL в CentOS с помощью Ansible. Спасибо, что прочитали эту статью.