Ansible

Gestire i repository di pacchetti Ubuntu e i PPA utilizzando Ansible

Gestire i repository di pacchetti Ubuntu e i PPA utilizzando Ansible
Aggiungere e rimuovere repository di pacchetti e PPA in Ubuntu sul tuo sistema personale può essere un compito molto semplice. Tuttavia, se si dispone di molte macchine Ubuntu, ad esempio 10 o più, l'aggiunta e la rimozione manuale di repository di pacchetti e PPA su ciascun sistema uno per uno si dimostrerà dispendioso in termini di tempo e inefficiente.

L'Ansible apt_repository il modulo può essere utilizzato per aggiungere e rimuovere facilmente repository di pacchetti e PPA sui tuoi host Ubuntu. Puoi anche aggiornare la cache del repository dei pacchetti APT usando Ansible apt_repository modulo.

Questo articolo ti mostrerà come gestire i repository di pacchetti Ubuntu e i PPA utilizzando 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 degli host per l'automazione di Ansible. Puoi controllare questi articoli se hai bisogno di ulteriori informazioni.

Configurazione della directory del progetto

Prima di iniziare, sarà una buona idea creare una struttura di directory del 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 corrente), esegui il seguente comando:

$ mkdir -pv apt-ppa-repo/playbooks

Una volta creata la directory del progetto, accedere alla directory del progetto, come segue:

$ cd apt-ppa-repo

Creare un padroni di casa file di inventario, come segue:

$ nano host

Aggiungi l'IP host o il nome DNS (vm7.nodokite.come e vm8.nodokite.come, nel mio caso) dei tuoi host Ubuntu nel file di inventario.

Al termine, salvare il file premendo by + X, seguito da e .

Crea un file di configurazione Ansible nella directory del progetto, come segue:

$ nano ansible.cfg

Digita le seguenti righe nel ansible.cfg file:

[predefiniti]
inventario           = host
host_key_checking   = Falso

Al termine, salvare il file premendo by + X, seguito da e .

A questo punto, la directory del progetto dovrebbe essere simile alla seguente:

$ albero

Come puoi vedere, gli host Ansible sono accessibili. Quindi, possiamo passare alla prossima sezione di questo articolo.

$ ansible all -u ansible -m ping

Aggiunta di repository di pacchetti

In questa sezione, ti mostrerò come aggiungere un repository di pacchetti in Ubuntu usando Ansible.

Per prima cosa, crea un nuovo playbook chiamato add_repo.igname nel libri di gioco/ rubrica, come segue:

$ nano playbook/add_repo.igname

Digita le seguenti righe nel add_repo.igname file:

- host: tutti
utente: ansible
diventa vero
compiti:
- nome: assicurati che il repository dell'universo sia abilitato
apt_repository:
repo: deb http://archive.ubuntu.com/ubuntu universo focale
stato: presente
update_cache: Vero

Al termine, salvare il file premendo by + X, seguito da e .

qui, il repo opzione del apt_repository modulo viene utilizzato per specificare la riga del repository del pacchetto APT (nel mio caso, deb http://archivio.ubuntu.com/ubuntu universo focale) del repository del pacchetto che vuoi aggiungere (nel mio caso, Ubuntu 20.04 LTS ufficiale universo deposito).

Per saperne di più sul formato della linea di repository dei pacchetti APT, leggi il File di configurazione del repository di pacchetti Ubuntu sezione dell'articolo Come utilizzare APT Package Manager in Ubuntu 20.04 LTS.

Poiché 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 dei pacchetti APT dopo aver aggiunto il repository dei pacchetti.

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 dei pacchetti. Quindi, ho impostato il update_cache per Vero.

Ora, esegui il add_repo.igname playbook, come segue:

$ playbook ansible-playbook/add_repo.igname

Come puoi vedere, il playbook è stato eseguito correttamente.

Per confermare che il repository del pacchetto (nel mio caso, Ubuntu 20.04 LTS universo repository) viene aggiunto, eseguire il seguente comando:

$ grep --color -R 'http://archivio.ubuntu.com' /etc/apt/sources.elenco
/etc/apt/sources.elenco.d/*.elenco

Come puoi vedere, è stato creato un nuovo file nel /etc/apt/sources.elenco.d/ directory (1) e Ubuntu 20.04 LTS universo il repository dei pacchetti è stato aggiunto (2).

Per impostazione predefinita, Ansible genererà automaticamente l'a .elenco file nel /etc/apt/sources.elenco.d/ directory, a seconda della riga del repository APT.

Se desideri scegliere un nome file specifico (i.e. universo-ubuntu.elenco) per il tuo repository, puoi specificare un nome file usando il tasto nome del file opzione del apt_repository modulo nel tuo add_repo.igname playbook, come mostrato nello screenshot qui sotto.

Ora, esegui il add_repo.igname playbook di nuovo.

$ playbook ansible-playbook/add_repo.igname

Come puoi vedere, il nome del file è lo stesso nome che ho specificato.

$ grep --color -R 'http://archivio.ubuntu.com' /etc/apt/sources.elenco
/etc/apt/sources.elenco.d/*.elenco

Rimozione dei repository di pacchetti

In questa sezione, ti mostrerò come rimuovere un repository di pacchetti esistente dai tuoi 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.igname playbook e modificalo un po'. Questo è molto semplice da fare.

Per prima cosa, copia il add_repo.igname file in remove_repo.igname, come segue:

$ cp -v playbook/add_repo.yaml playbook/remove_repo.igname

Modifica il remove_repo.igname playbook, come segue:

$ nano playbook/remove_repo.igname

Modificare stato: presente per stato: assente, come indicato nello screenshot qui sotto. Questa sarà l'unica modifica che dovrai fare.

Al termine, salvare il file premendo by + X, seguito da e .

Corri il remove_repo.igname playbook, come segue:

$ playbook ansible-playbook/remove_repo.igname

Quindi, esegui il seguente comando per verificare se il repository del pacchetto che desideri rimuovere è stato effettivamente rimosso.

$ grep --color -R 'http://archivio.ubuntu.com' /etc/apt/sources.elenco
/etc/apt/sources.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/sources.elenco.d/ la directory è vuota. Se desideri rimuovere il messaggio di errore, aggiungi semplicemente a 2>/dev/null alla fine del comando, come segue. L'errore dovrebbe essere sparito dopo aver inserito questo comando.

$ grep --color -R 'http://archivio.ubuntu.com' /etc/apt/sources.elenco
/etc/apt/sources.elenco.d/*.list 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 focale Nodo.js 10.19 PPA per Ubuntu 20.04 LTS nel mio esempio.

Per prima cosa, crea un nuovo playbook add_ppa.igname, come segue:

$ nano playbook/add_ppa.igname

Aggiungi le seguenti righe nel tuo add_ppa.igname libro di gioco:

- host: tutti
utente: ansible
diventa vero
compiti:
- nome: Aggiungi nodo.js 10.19 PPA
apt_repository:
repo: ppa:osomon/nodejs-10.19 focale
stato: presente
update_cache: Vero
validate_certs: Falso

Una volta che hai finito, salva il add_ppa.igname playbook premendo + X, seguito da e .

qui, il repo opzione del apt_repository modulo viene utilizzato per aggiungere il PPA osomon/nodejs-10.19 focale (1).

Assicurati di aggiungere pap: prima del nome PPA, i.e. ppa:osomon/nodejs-10.19 focale.

La maggior parte dei PPA utilizza certificati autofirmati, quindi Ansible non può verificarli per te e potrebbero verificarsi errori quando esegui il playbook.

puoi impostare validate_certs per 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 per falso per saltare la convalida della certificazione quando si aggiungono repository di pacchetti di terze parti.

Corri il add_ppa.igname playbook, come segue:

$ playbook ansible-playbook/add_ppa.igname

Come puoi vedere, un nuovo .elenco file per il PPA osomon/nodejs-10.19 focale è stato creato nel /etc/apt/sources.elenco.d/ elenco (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/sources.elenco.d/
$ cat /etc/apt/sources.elenco.d/ppa_osomon_nodejs_10_19_focal_xenial.elenco

Rimozione dei PPA

Puoi rimuovere i PPA nello stesso modo in cui abbiamo rimosso i repository di pacchetti nella sezione precedente di questo articolo.

Basta copiare il app_ppa.igname playbook per remove_ppa.igname, come segue:

$ cp -v playbook/add_repo.yaml playbook/remove_repo.igname

Ora apri il remove_ppa.igname playbook, come segue:

$ nano playbook/remove_ppa.igname

Quindi, cambia la linea stato: presente per stato: assente, come indicato nello screenshot qui sotto.

Una volta che hai finito, salva il remove_ppa.igname playbook premendo + X, seguito da e .

Corri il remove_ppa.igname playbook, come segue:

$ playbook ansible-playbook/add_ppa.igname

Come puoi vedere, il ppa_osomon_nodejs_10_19_focal_focal.elenco file per il osomon/nodejs-10.19 focale PPA non è più disponibile in /etc/apt/sources.elenco.d/ directory. Quindi, il PPA osomon/nodejs-10.19 focale è stato rimosso.

$ albero /etc/apt/sources.elenco.d/

Modifica del nome in codice PPA

A volte, il PPA che stai cercando di aggiungere al tuo host Ubuntu non supporta la versione di Ubuntu che stai utilizzando. In tal caso, dovrai specificare manualmente il nome in codice della versione di Ubuntu durante l'aggiunta del PPA.

Supponiamo che tu stia eseguendo 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 Nome in codice LTS xenial. 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 Nome in codice LTS xenial 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 utilizzando.

Vediamo un esempio.

Per prima cosa, copia il add_ppa.igname file playbook su change_ppa_codename.igname, come segue:

$ cp -v playbook/add_ppa.yaml playbooks/change_ppa_codename.igname

Quindi, apri il change_ppa_codename.igname file, come segue:

$ nano playbook/change_ppa_codename.igname

Qui non devi far altro che aggiungere il nome in codice opzione con il nome in codice Ubuntu desiderato (i.e. nome in codice: xenial), come indicato nello screenshot qui sotto.

Una volta che hai finito, salva il change_ppa_codename.igname file premendo + X, seguito da e .

Corri il change_ppa_codename.igname playbook, come segue:

$ ansible-playbook playbooks/change_ppa_codename.igname

NOTA: Ricevo un errore perché il PPA che ho aggiunto qui supporta solo Ubuntu 20.04 LTS. Puoi semplicemente ignorare questo messaggio.

Come puoi vedere, è stato aggiunto il PPA e il nome in codice di Ubuntu xenial è nella riga del repository dei pacchetti APT.

Conclusione

Questo articolo ti ha mostrato come gestire (aggiungere/rimuovere) i repository di pacchetti Ubuntu e i PPA usando Ansible.

L'Ansible apt_repository viene utilizzato per gestire i repository di pacchetti Ubuntu e i PPA. Questo articolo ha spiegato tutte le opzioni importanti del apt_repository modulo di Ansible.

Per ulteriori informazioni, controlla la pagina della documentazione ufficiale di apt_repository Ansible.

Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...
Come sviluppare un gioco su Linux
Un decennio fa, non molti utenti Linux avrebbero previsto che il loro sistema operativo preferito un giorno sarebbe diventato una piattaforma di gioco...