Come abilitare il repository di Epel su Centos con Ansible

Come abilitare il repository di Epel su Centos con Ansible
In questo articolo, ti mostrerò come abilitare il repository di epel su centos usando Ansible. Quindi iniziamo.

Prerequisiti

Per abilitare il repository EPEL su CentOS 7 o CentOS 8 con Ansible:

  1. Devi avere Ansible installato sul tuo computer.
  2. È necessario disporre di macchine CentOS 7 o CentOS 8 per l'automazione Ansible.

Ci sono molti articoli su Linuxhint dedicati all'installazione di Ansible e alla configurazione di host per Ansible Automation. Potresti voler controllare questi articoli se necessario, per i tuoi scopi.

Abilitazione del repository EPEL su host CentOS

Innanzitutto, crea una directory di progetto ~/Progetto con il seguente comando:

$ mkdir -pv ~/progetto/playbooks

Navigare verso il ~/Progetto Directory con il seguente comando:

$ CD ~/Progetto

Crea un nuovo file ospiti nella directory del progetto e aprilo con il nano Editor di testo come segue:

$ nano hosts

Un file vuoto ospiti dovrebbe essere creato e aperto con il nano text editor.

Digita gli indirizzi IP o i nomi DNS delle macchine Target CentOS 7 e CentOS 8 (dove si desidera abilitare il repository EPEL) nel centos sezione del ospiti file, come segue:

[centos]
192.168.20.169
192.168.20.222

Qui, 192.168.20.169 è l'indirizzo IP della mia macchina virtuale CentOS 8 e 192.168.20.222 è l'indirizzo IP della mia macchina virtuale CentOS 7. Questi saranno diversi per te. Assicurati di sostituire gli indirizzi IP di esempio con il proprio elenco da ora in poi.

NOTA: Puoi trovare gli indirizzi IP dei tuoi host CentOS con il seguente comando:

$ hostname -i

Se i tuoi host CentOS hanno i nomi DNS configurati, dovresti essere in grado di trovarli con il seguente comando:

$ hostname -a

Il finale ospiti Il file dovrebbe apparire come mostrato nello screenshot seguente.

Ora, salva il file host premendo + X seguito da Y E .

Crea un file di configurazione Ansible Ansible.cfg come segue:

$ nano ansible.cfg

Digita le seguenti righe nell'ansible.File CFG:

[impostazioni predefinite]
inventario =./host

Una volta completato questo passaggio, salva il file premendo + X seguito da Y E .

Ora, crea un nuovo playbook Ansible abilita_epel_repo.Yaml nel playbooks/ directory come segue:

$ nano playbooks/abilita_epel_repo.Yaml

Quindi, digitare i seguenti codici in abilita_epel_repo.Yaml file:

- Ospite: centos
Utente: Ansible
compiti:
- Nome: Abilita repository EPEL su CentOS 8
DNF:
Nome: release epel
Stato: ultimo
diventa vero
Quando: Ansible_Facts ['OS_Family'] == 'Redhat' e Ansible_Facts
['Distribution_major_version'] == '8'
- Nome: Abilita repository EPEL su CentOS 7
Yum:
Nome: release epel
Stato: ultimo
diventa vero
Quando: Ansible_Facts ['OS_Family'] == 'Redhat' e Ansible_Facts
['distribuzione_major_version'] == '7'

In questo codice:

Ospite: centos, Seleziona solo gli host in centos gruppo dal ospiti file.

Utente: Ansible, Il nome utente SSH degli host (dove Ansible eseguirà le attività) Ansible.

Ho definito 2 compiti Qui. Uno per i padroni di casa CentOS 8 e uno per gli host CentOS 7. Il motivo per cui l'ho fatto in questo modo è perché il gestore dei pacchetti predefiniti per CentOS 8 è DNF e CentOS 7 è Yum. Un'attività (prima attività) utilizzerà il gestore dei pacchetti DNF e verrà eseguita solo su Host CentOS 8. L'altra attività (ultima attività) utilizzerà il Gestione pacchetti Yum e eseguirà solo gli host CentOS 7.

Questi due compiti sono quasi identici. Le uniche differenze sono i moduli di pacchetti (dnf E Yum) utilizzato nelle attività e nel codice di controllo della versione CentOS.

dnf E Yum I moduli ansible accettano gli stessi parametri.

Qui, Nome: release epel, Il pacchetto da installare è il Epel-release.

Stato: ultimo, il pacchetto Epel-release dovrebbe essere installato. Se il pacchetto è già installato ed è disponibile una versione aggiornata, il pacchetto verrà aggiornato.

Quando: condizione, se la condizione È VERO, quindi l'attività verrà eseguita. Altrimenti, l'attività non verrà eseguita.

ansible_facts, Utilizzato per accedere alle variabili host Ansible.

Ansible_Facts ['OS_Family'] == 'RedHat', Verifica se il sistema operativo host è CentOS o Redhat.

ansible_facts ['distribuzione_major_version'] == '8', Verifica se la versione del sistema operativo host è 8 (CentOS 8 o Redhat 8, in questo caso).

ansible_facts ['Distribution_major_version'] == '7', Verifica se la versione del sistema operativo host è 7 (CentOS 7 o Redhat 7, in questo caso).

Quindi, salva abilita_epel_repo.Yaml File premendo + X seguito da Y E .

Ora puoi eseguire il playbook Ansible come segue:

$ ansible-playbook playbooks/abilita_epel_repo.Yaml

Il playbook dovrebbe essere eseguito senza errori e il repository EPEL dovrebbe essere abilitato su entrambi gli host CentOS 7 e CentOS 8.

Come puoi vedere, il repository di Epel è abilitato nel mio host CentOS 8.

Come puoi vedere, il repository di Epel è abilitato nel mio host CentOS 7.

Quindi, è così che si abilita il repository di Epel su CentOS usando Ansible. Grazie per aver letto questo articolo.