Предпоставки
За да активирате EPEL хранилището на CentOS 7 или CentOS 8 машини с Ansible:
- Трябва да имате инсталиран Ansible на вашия компютър.
- Трябва да имате CentOS 7 или CentOS 8 машини, конфигурирани за Ansible автоматизация.
В LinuxHint има много статии, посветени на Инсталиране на Ansible и конфигуриране на хостове за Ansible автоматизация. Може да поискате да разгледате тези статии, ако е необходимо, за вашите цели.
Активиране на EPEL хранилището на CentOS хостове
Първо, създайте директория на проекта ~ / проект със следната команда:
$ mkdir -pv ~ / project / playbooks
Придвижете се до ~ / проект директория със следната команда:
$ cd ~ / проект
Създайте нов файл домакини в директорията на проекта и го отворете с нано текстовия редактор, както следва:
$ 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
Финалът домакини файлът трябва да изглежда както е показано на екранната снимка по-долу.
Сега запазете файла с хостове, като натиснете
Създайте конфигурационен файл Ansible ансибъл.cfg както следва:
$ nano ansible.cfg
Въведете следните редове в анзибъла.cfg файл:
[по подразбиране]инвентар =./ домакини
След като завършите тази стъпка, запазете файла, като натиснете
Сега създайте нова книга за игра Ansible enable_epel_repo.ямъл в книги за игри / директория, както следва:
$ nano playbooks / enable_epel_repo.ямъл
След това въведете следните кодове в enable_epel_repo.ямъл файл:
- домакини: centosпотребител: ansible
задачи:
- name: Активирайте EPEL Repository на CentOS 8
dnf:
име: epel-освобождаване
състояние: последно
стана: Вярно
когато: ansible_facts ['os_family'] == 'RedHat' и ansible_facts
['Distribution_major_version'] == '8'
- name: Активирайте EPEL Repository на CentOS 7
yum:
име: epel-освобождаване
състояние: последно
стана: Вярно
когато: 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 и ням Отговорните модули приемат същите параметри.
Тук, име: epel-освобождаване, пакетът, който трябва да се инсталира, е epel-освобождаване.
състояние: последно, Пакетът epel-освобождаване трябва да се инсталира. Ако пакетът вече е инсталиран и е налична актуализирана версия, тогава пакетът ще бъде актуализиран.
когато: състояние, ако състояние е вярно, тогава задачата ще се изпълни. В противен случай задачата няма да се изпълни.
ansible_facts, използва се за достъп до променливите на хоста Ansible.
ansible_facts ['os_family'] == 'RedHat', проверява дали хост ОС е CentOS или RedHat.
ansible_facts ['разпределителна_авторска_версия'] == '8', проверява дали версията на хост ОС е 8 (в случая CentOS 8 или RedHat 8).
ansible_facts ['разпределителна_авторска_версия'] == '7', проверява дали версията на ОС на хоста е 7 (в случая CentOS 7 или RedHat 7).
След това запазете enable_epel_repo.ямъл файл, като натиснете
Сега можете да стартирате Ansible playbook, както следва:
$ ansible-playbook playbooks / enable_epel_repo.ямъл
Книгата за игри трябва да работи без грешки, а хранилището EPEL трябва да бъде активирано както на CentOS 7, така и на CentOS 8 хостове.
Както можете да видите, EPEL хранилището е активирано в моя CentOS 8 хост.
Както можете да видите, EPEL хранилището е активирано в моя CentOS 7 хост.
И така, вие активирате EPEL хранилището на CentOS с помощта на Ansible. Благодаря, че прочетохте тази статия.