L'ansible apt_repository Il modulo può essere utilizzato per aggiungere e rimuovere i repository del pacchetto e i PPA sui tuoi host Ubuntu con facilità. È inoltre possibile aggiornare la cache del repository del pacchetto APT utilizzando Ansible apt_repository modulo.
Questo articolo ti mostrerà come gestire i repository e i PPA del pacchetto Ubuntu utilizzando l'Ansible apt_repository modulo. Quindi iniziamo.
Prerequisiti
Se vuoi provare gli esempi inclusi in questo articolo:
1) Devi avere Ansible installato sul tuo computer.
2) Devi avere un host Ubuntu configurato per l'automazione Ansible.
Ci sono molti articoli su Linuxhint dedicati all'installazione di Ansible e alla configurazione di host per Ansible Automation. È possibile controllare questi articoli se hai bisogno di ulteriori informazioni.
Impostazione della directory del progetto
Prima di iniziare, sarà una buona idea creare una struttura di directory di progetto, solo per mantenere le cose un po 'più organizzate.
Per creare la directory del progetto apt-ppa-repo/ e tutte le sottodirectory richieste (nella directory di lavoro attuale), eseguire il seguente comando:
$ mkdir -pv apt-ppa-repo/playbooks
Una volta creata la directory del progetto, vai alla directory del progetto, come segue:
$ CD APT-PPA-Repo
Creare un ospiti File di inventario, come segue:
$ nano hosts
Aggiungi il nome IP o DNS host (VM7.nodekite.com E VM8.nodekite.com, Nel mio caso) dei tuoi host Ubuntu nel file di inventario.
Una volta terminato, salva il file premendo + X, seguito da Y E .
Crea un file di configurazione Ansible nella directory del progetto, come segue:
$ nano ansible.cfg
Digitare le seguenti righe in Ansible.cfg file:
[impostazioni predefinite]Una volta terminato, salva il file premendo + X, seguito da Y E .
A questo punto, la directory del progetto dovrebbe apparire come le seguenti:
$ Tree
Come puoi vedere, gli host Ansible sono accessibili. Quindi, possiamo passare alla sezione successiva di questo articolo.
$ ansible tutto -u ansible -m ping
Aggiunta di repository del pacchetto
In questa sezione, ti mostrerò come aggiungere un repository di pacchetti in Ubuntu usando Ansible.
Innanzitutto, crea un nuovo playbook chiamato add_repo.Yaml nel playbooks/ Directory, come segue:
$ nano playbooks/add_repo.YamlDigitare le seguenti righe in add_repo.Yaml file:
- Host: tuttoUna volta terminato, salva il file premendo + X, seguito da Y E .
Qui, il Repo Opzione del apt_repository Il modulo viene utilizzato per specificare la riga del repository del pacchetto APT (nel mio caso, deb http: // archivio.Ubuntu.com/ubuntu focal universe) del repository dei pacchetti che si desidera aggiungere (nel mio caso, Ubuntu 20.04 LTS ufficiale universo repository).
Per saperne di più sul formato della riga del repository dei pacchetti APT, leggi il File di configurazione del repository di pacchetto Ubuntu Sezione dell'articolo come utilizzare APT Package Manager in Ubuntu 20.04 LTS.
Mentre sto aggiungendo un nuovo repository di pacchetti qui, il stato È presente.
IL update_cache l'opzione può essere VERO/SÌ O Falso/NO.
Se la update_cache è impostato per VERO, Ansible aggiornerà la cache del repository del pacchetto APT dopo l'aggiunta del repository pacchetto.
Se la update_cache è impostato per Falso, Ansible non aggiornerà la cache del repository del pacchetto APT.
Qui, voglio che il repository dei pacchetti APT venga aggiornato una volta aggiunto il nuovo repository pacchetti. Quindi, ho impostato il update_cache A VERO.
Ora, esegui il add_repo.Yaml playbook, come segue:
$ ansible-playbook playbooks/add_repo.YamlCome puoi vedere, il playbook ha funzionato con successo.
Per confermare che il repository dei pacchetti (nel mio caso, Ubuntu 20.04 LTS universo repository) viene aggiunto, eseguire il seguente comando:
$ GREP -COLOR -R 'http: // Archive.Ubuntu.com '/etc/apt/fonti.elenco
/etc/apt/fonti.elenco.D/*.elenco
Come puoi vedere, è stato creato un nuovo file in /etc/apt/fonti.elenco.D/ Directory (1) e Ubuntu 20.04 LTS universo È stato aggiunto il repository dei pacchetti (2).
Per impostazione predefinita, Ansible genererà automaticamente la a .elenco file in /etc/apt/fonti.elenco.D/ directory, a seconda della linea del repository APT.
Se desideri scegliere un nome file specifico (i.e. Ubuntu-universe.elenco) per il tuo repository, è possibile specificare un nome file utilizzando il nome del file Opzione del apt_repository modulo nel tuo add_repo.Yaml Playbook, come mostrato nello screenshot qui sotto.
Ora, esegui il add_repo.Yaml Playbook di nuovo.
$ ansible-playbook playbooks/add_repo.YamlCome puoi vedere, il nome file è lo stesso nome che ho specificato.
$ GREP -COLOR -R 'http: // Archive.Ubuntu.com '/etc/apt/fonti.elenco
/etc/apt/fonti.elenco.D/*.elenco
Rimozione di repository del pacchetto
In questa sezione, ti mostrerò come rimuovere un repository di pacchetti esistente dagli host Ubuntu usando Ansible.
Il playbook per la rimozione di un repository di pacchetti è quasi lo stesso dell'aggiunta di un repository di pacchetti. Quindi, puoi semplicemente copiare il add_repo.Yaml File di playbook e modificalo un po '. Questo è molto semplice da fare.
Innanzitutto, copia il add_repo.Yaml file a Rimuovi_repo.Yaml, come segue:
$ cp -v playbooks/add_repo.Yaml Playbooks/Remove_repo.YamlModificare il Rimuovi_repo.Yaml playbook, come segue:
$ nano playbooks/remow_repo.YamlModifica Stato: presente A Stato: assente, come contrassegnato nello screenshot seguente. Questa sarà l'unica modifica che devi fare.
Una volta terminato, salva il file premendo + X, seguito da Y E .
Corri il Rimuovi_repo.Yaml playbook, come segue:
$ ansible-playbook playbooks/remow_repo.YamlQuindi, eseguire il seguente comando per verificare se il repository pacchetto che si desidera rimuovere è stato effettivamente rimosso.
$ GREP -COLOR -R 'http: // Archive.Ubuntu.com '/etc/apt/fonti.elencoCome puoi vedere, Ubuntu 20.04 LTS ufficiale universo Il repository dei pacchetti che ho aggiunto in precedenza è stato rimosso.
NOTA: Ignora il messaggio di errore. Questo messaggio significa solo che il /etc/apt/fonti.elenco.D/ La directory è vuota. Se si desidera rimuovere il messaggio di errore, aggiungi un file 2>/dev/null Alla fine del comando, come segue. L'errore dovrebbe essere scomparso dopo aver inserito questo comando.
$ GREP -COLOR -R 'http: // Archive.Ubuntu.com '/etc/apt/fonti.elencoAggiunta di PPA
In questa sezione, ti mostrerò come aggiungere un PPA sui tuoi host Ubuntu usando Ansible.
Aggiungerò il Osomon/NodeJS-10.19-Focal Nodo.JS 10.19 ppa per ubuntu 20.04 LTS nel mio esempio.
Innanzitutto, crea un nuovo playbook add_ppa.Yaml, come segue:
$ nano playbooks/add_ppa.YamlAggiungi le seguenti righe nel tuo add_ppa.Yaml Playbook:
- Host: tuttoUna volta terminato, salva il add_ppa.Yaml Playbook premendo + X, seguito da Y E .
Qui, il Repo Opzione del apt_repository Il modulo viene utilizzato per aggiungere il PPA Osomon/NodeJS-10.19-Focal (1).
Assicurati di aggiungere PPA: Prima del nome PPA, io.e. PPA: Osomon/NodeJS-10.19-Focal.
La maggior parte dei PPA utilizza certificati autofirmati, quindi l'ansible non può verificarli per te e possono errori quando si esegue il playbook.
Puoi impostare validate_certs A Falso Per saltare la convalida del certificato per il PPA che stai aggiungendo (2). Questo è quello che ho fatto nell'esempio in questo articolo.
NOTA: Puoi anche impostare validate_certs A Falso Per saltare la convalida della certificazione quando si aggiungono repository di pacchetti di terze parti.
Corri il add_ppa.Yaml playbook, come segue:
$ ansible-playbook playbooks/add_ppa.YamlCome puoi vedere, un nuovo .elenco File per il PPA Osomon/NodeJS-10.19-Focal è stato creato in /etc/apt/fonti.elenco.D/ directory (1).
Guardando il contenuto del ppa_osomon_nodejs_10_19_focal_focal.elenco file, posso confermare che il PPA è stato aggiunto (2).
$ albero/etc/apt/fonti.elenco.D/Rimozione di PPA
È possibile rimuovere i PPA allo stesso modo in cui abbiamo rimosso i repository del pacchetto nella sezione precedente di questo articolo.
Basta copiare il app_ppa.Yaml playbook a Rimuovi_ppa.Yaml, come segue:
$ cp -v playbooks/add_repo.Yaml Playbooks/Remove_repo.YamlOra, apri il Rimuovi_ppa.Yaml playbook, come segue:
$ nano playbooks/remove_ppa.YamlSuccessivamente, cambia la linea Stato: presente A Stato: assente, come contrassegnato nello screenshot seguente.
Una volta terminato, salva il Rimuovi_ppa.Yaml Playbook premendo + X, seguito da Y E .
Corri il Rimuovi_ppa.Yaml playbook, come segue:
$ ansible-playbook playbooks/add_ppa.YamlCome puoi vedere, il ppa_osomon_nodejs_10_19_focal_focal.elenco file per il Osomon/NodeJS-10.19-Focal PPA non è più disponibile in /etc/apt/fonti.elenco.D/ directory. Quindi, il PPA Osomon/NodeJS-10.19-Focal è stato rimosso.
$ albero/etc/apt/fonti.elenco.D/
Modifica del nome in codice PPA
A volte, il PPA che stai cercando di aggiungere il tuo host Ubuntu non supporta la versione di Ubuntu che stai eseguendo. In tal caso, dovrai specificare manualmente il nome in codice Ubuntu durante l'aggiunta del PPA.
Supponiamo che tu stia gestendo Ubuntu 20.04 con nome in codice focale E stai cercando di aggiungere il PPA XYZ, Ma il PPA XYZ Supporta solo Ubuntu 16.04 LTS Codename xeniale. Se provi ad aggiungere il PPA XYZ, Riceverai un errore, poiché il PPA non ha alcun pacchetto per Ubuntu 20.04 nome in codice focale. Ma, se specifichi Ubuntu 16.04 LTS Codename xeniale Durante l'aggiunta del PPA, non riceverai alcun errore. Potresti essere in grado di installare il pacchetto desiderato dal PPA in questo modo, anche se non supporta la versione esplicita di Ubuntu che stai attualmente eseguendo.
Vediamo un esempio.
Innanzitutto, copia il add_ppa.Yaml File di playbook a Change_ppa_codename.Yaml, come segue:
$ cp -v playbooks/add_ppa.Yaml Playbooks/Change_ppa_Codename.YamlQuindi, apri il Change_ppa_codename.Yaml file, come segue:
$ nano playbooks/change_ppa_codename.YamlQui, tutto ciò che devi fare è aggiungere il nome in codice Opzione con il tuo nome in codice Ubuntu desiderato (i.e. Codename: xenial), come contrassegnato nello screenshot seguente.
Una volta terminato, salva il Change_ppa_codename.Yaml File premendo + X, seguito da Y E .
Corri il Change_ppa_codename.Yaml playbook, come segue:
$ ansible-playbook playbooks/change_ppa_codename.YamlNOTA: Sto ricevendo un errore perché il PPA che ho aggiunto qui supporta solo Ubuntu 20.04 LTS. Puoi semplicemente ignorare questo messaggio.
Come puoi vedere, il PPA è stato aggiunto e il nome in codice Ubuntu xeniale è nella riga del repository dei pacchetti APT.
Conclusione
Questo articolo ti ha mostrato come gestire (aggiungere/rimuovere) repository e PPA del pacchetto Ubuntu usando Ansible.
L'ansible apt_repository Il modulo viene utilizzato per gestire i repository del pacchetto Ubuntu e PPA. Questo articolo ha spiegato tutte le opzioni importanti del apt_repository Modulo di Ansible.
Per ulteriori informazioni, consultare la pagina della documentazione ufficiale APT_Repository Ansible.