Gestisci repository e PPA del pacchetto Ubuntu utilizzando Ansible

Gestisci repository e PPA del pacchetto Ubuntu utilizzando Ansible
L'aggiunta e la rimozione di repository di pacchetto e PPA in Ubuntu sul tuo sistema personale può essere un compito molto semplice. Tuttavia, se hai molte macchine Ubuntu, diciamo, 10 o più, quindi aggiungendo e rimuovendo manualmente repository e PPA su ciascun sistema uno a uno si dimostrerà sia che richiederà tempo e inefficiente.

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]
Inventario = host
host_key_checking = false

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.Yaml

Digitare le seguenti righe in add_repo.Yaml file:

- Host: tutto
Utente: Ansible
diventa vero
compiti:
- Nome: assicurarsi che il repository universe sia abilitato
apt_repository:
Repo: Deb http: // Archive.Ubuntu.com/ubuntu focal universe
Stato: presente
update_cache: vero

Una 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/ 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.Yaml

Come 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.Yaml

Come 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.Yaml

Modificare il Rimuovi_repo.Yaml playbook, come segue:

$ nano playbooks/remow_repo.Yaml

Modifica 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.Yaml

Quindi, 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.elenco
/etc/apt/fonti.elenco.D/*.elenco

Come 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.elenco
/etc/apt/fonti.elenco.D/*.Elenco 2>/dev/null

Aggiunta 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.Yaml

Aggiungi le seguenti righe nel tuo add_ppa.Yaml Playbook:

- Host: tutto
Utente: Ansible
diventa vero
compiti:
- Nome: Aggiungi nodo.JS 10.19 ppa
apt_repository:
Repo: PPA: Osomon/NodeJS-10.19-Focal
Stato: presente
update_cache: vero
validate_certs: false

Una 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.Yaml

Come 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/
$ cat/etc/apt/fonti.elenco.d/ppa_osomon_nodejs_10_19_focal_xenial.elenco

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.Yaml

Ora, apri il Rimuovi_ppa.Yaml playbook, come segue:

$ nano playbooks/remove_ppa.Yaml

Successivamente, 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.Yaml

Come 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.Yaml

Quindi, apri il Change_ppa_codename.Yaml file, come segue:

$ nano playbooks/change_ppa_codename.Yaml

Qui, 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.Yaml

NOTA: 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.