Prerequisiti
Per abilitare il repository EPEL su CentOS 7 o CentOS 8 con 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.