Prerrequisitos
Para habilitar el repositorio EPEL en máquinas CentOS 7 o CentOS 8 con Ansible:
- Debes tener Ansible instalado en tu computadora.
- Debe tener máquinas CentOS 7 o CentOS 8 configuradas para la automatización de Ansible.
Hay muchos artículos sobre LinuxHint dedicados a la instalación de Ansible y la configuración de hosts para la automatización de Ansible. Es posible que desee consultar estos artículos si es necesario, para sus propósitos.
Habilitación del repositorio EPEL en hosts CentOS
Primero, crea un directorio de proyecto ~ / proyecto con el siguiente comando:
$ mkdir -pv ~ / project / playbooks
Navega al ~ / proyecto directorio con el siguiente comando:
$ cd ~ / proyecto
Crea un archivo nuevo Hospedadores en el directorio del proyecto y ábralo con el editor de texto nano de la siguiente manera:
$ nano hosts
Un archivo en blanco Hospedadores debe crearse y abrirse con el editor de texto nano.
Escriba las direcciones IP o los nombres DNS de las máquinas CentOS 7 y CentOS 8 de destino (donde desea habilitar el repositorio EPEL) en el centos sección de la Hospedadores archivo, de la siguiente manera:
[centos]192.168.20.169
192.168.20.222
Aquí, 192.168.20.169 es la dirección IP de mi máquina virtual CentOS 8 y 192.168.20.222 es la dirección IP de mi máquina virtual CentOS 7. Estos serán diferentes para ti. Asegúrese de reemplazar las direcciones IP de muestra con su propia lista a partir de ahora.
NOTA: Puede encontrar las direcciones IP de sus hosts CentOS con el siguiente comando:
$ nombre de host -I
Si sus hosts CentOS tienen configurados nombres de DNS, debería poder encontrarlos con el siguiente comando:
$ nombre de host -A
El final Hospedadores el archivo debe verse como se muestra en la captura de pantalla a continuación.
Ahora, guarde el archivo de hosts presionando
Cree un archivo de configuración de Ansible ansible.cfg como sigue:
$ nano ansible.cfg
Escriba las siguientes líneas en ansible.archivo cfg:
[valores predeterminados]inventario =./Hospedadores
Una vez que haya completado este paso, guarde el archivo presionando
Ahora, cree un nuevo libro de jugadas de Ansible enable_epel_repo.yaml en el libros de jugadas / directorio de la siguiente manera:
$ nano playbooks / enable_epel_repo.yaml
A continuación, escriba los siguientes códigos en el enable_epel_repo.yaml expediente:
- anfitriones: centosusuario: ansible
Tareas:
- name: Habilite el repositorio EPEL en CentOS 8
dnf:
nombre: epel-release
estado: último
hecho realidad
cuando: ansible_facts ['os_family'] == 'RedHat' y ansible_facts
['distribution_major_version'] == '8'
- name: Habilite el repositorio EPEL en CentOS 7
mmm:
nombre: epel-release
estado: último
hecho realidad
cuando: ansible_facts ['os_family'] == 'RedHat' y ansible_facts
['distribution_major_version'] == '7'
En este código:
anfitriones: centos, selecciona solo los hosts en el centos grupo del Hospedadores expediente.
usuario: ansible, el nombre de usuario SSH de los hosts (donde Ansible ejecutará las tareas) será ansible.
He definido 2 Tareas aquí. Uno para hosts CentOS 8 y otro para hosts CentOS 7. La razón por la que lo he hecho de esta manera es porque el administrador de paquetes predeterminado para CentOS 8 es DNF y CentOS 7 es YUM. Una tarea (primera tarea) usará el administrador de paquetes DNF y se ejecutará solo en hosts CentOS 8. La otra tarea (última tarea) usará el administrador de paquetes YUM y se ejecutará solo en hosts CentOS 7.
Estas dos tareas son casi idénticas. Las únicas diferencias son los módulos del administrador de paquetes (dnf y mmm) utilizado en las tareas y el código de verificación de la versión de CentOS.
dnf y mmm Los módulos Ansible aceptan los mismos parámetros.
Aquí, nombre: epel-release, el paquete que se instalará es el epel-release.
estado: último, el paquete epel-release debe ser instalado. Si el paquete ya está instalado y hay una versión actualizada disponible, el paquete se actualizará.
cuando: condición, Si el condición es cierto, entonces la tarea se ejecutará. De lo contrario, la tarea no se ejecutará.
ansible_facts, utilizado para acceder a las variables del lenguaje principal de Ansible.
ansible_facts ['os_family'] == 'RedHat', comprueba si el sistema operativo del host es CentOS o RedHat.
ansible_facts ['distribution_major_version'] == '8', comprueba si la versión del sistema operativo del host es 8 (CentOS 8 o RedHat 8, en este caso).
ansible_facts ['distribution_major_version'] == '7', comprueba si la versión del sistema operativo del host es 7 (CentOS 7 o RedHat 7, en este caso).
Entonces, guarda enable_epel_repo.yaml archivo presionando
Ahora, puede ejecutar el libro de jugadas de Ansible de la siguiente manera:
$ ansible-playbook playbooks / enable_epel_repo.yaml
El libro de jugadas debe ejecutarse sin errores y el repositorio de EPEL debe estar habilitado en los hosts de CentOS 7 y CentOS 8.
Como puede ver, el repositorio EPEL está habilitado en mi host CentOS 8.
Como puede ver, el repositorio EPEL está habilitado en mi host CentOS 7.
Entonces, así es como habilita el repositorio EPEL en CentOS usando Ansible. Gracias por leer este artículo.