Synlig

Administrer Ubuntu Package Repositories og PPA'er ved hjælp af Ansible

Administrer Ubuntu Package Repositories og PPA'er ved hjælp af Ansible
Tilføjelse og fjernelse af pakkeopbevaringssteder og PPA'er i Ubuntu på dit personlige system kan være en meget enkel opgave. Men hvis du har mange Ubuntu-maskiner, f.eks. 10 eller mere, vil tilføjelse og fjernelse af pakkeopbevaringssteder og PPA'er manuelt på hvert system en efter en manuelt være både tidskrævende og ineffektiv.

Det synlige apt_repository modul kan let bruges til at tilføje og fjerne pakkeopbevaringssteder og PPA'er på dine Ubuntu-værter. Du kan også opdatere APT-pakkeopbevaringscachen ved hjælp af Ansible apt_repository modul.

Denne artikel viser dig, hvordan du administrerer Ubuntu-pakkeopbevaringssteder og PPA'er ved hjælp af Ansible apt_repository modul. Så lad os komme i gang.

Forudsætninger

Hvis du vil prøve eksemplerne i denne artikel:

1) Du skal have Ansible installeret på din computer.
2) Du skal have en Ubuntu-vært konfigureret til Ansible-automatisering.

Der er mange artikler om LinuxHint dedikeret til installation af Ansible og konfigurering af værter til Ansible-automatisering. Du kan tjekke disse artikler, hvis du har brug for yderligere oplysninger.

Opsætning af projektmappe

Før vi begynder, vil det være en god idé at oprette en projektmappestruktur, bare for at holde tingene lidt mere organiserede.

For at oprette projektmappen apt-ppa-repo / og alle de krævede underkataloger (i din nuværende arbejdsmappe), kør følgende kommando:

$ mkdir -pv apt-ppa-repo / playbooks

Når projektmappen er oprettet, skal du navigere til projektmappen som følger:

$ cd apt-ppa-repo

Lave en værter opgørelsesfil som følger:

$ nano værter

Tilføj værts-IP- eller DNS-navn (vm7.nodekite.com og vm8.nodekite.com, i mit tilfælde) af dine Ubuntu-værter i lagerfilen.

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

Opret en Ansible-konfigurationsfil i projektmappen som følger:

$ nano ansible.cfg

Skriv følgende linjer i ansible.cfg fil:

[standard]
beholdning = værter
host_key_checking = Falsk

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

På dette tidspunkt skal projektmappen se ud som følger:

$ træ

Som du kan se, er Ansible-værter tilgængelige. Så vi kan gå videre til næste afsnit i denne artikel.

$ ansible all -u ansible -m ping

Tilføjelse af pakkeopbevaringssteder

I dette afsnit vil jeg vise dig, hvordan du tilføjer et pakkelager i Ubuntu ved hjælp af Ansible.

Opret først en ny playbook kaldet add_repo.yaml i legebøger / katalog, som følger:

$ nano playbooks / add_repo.yaml

Skriv følgende linjer i add_repo.yaml fil:

- værter: alle
bruger: ansible
blive: Sandt
opgaver:
- navn: Sørg for, at universlager er aktiveret
apt_repository:
repo: deb http: // arkiv.ubuntu.com / ubuntu fokalunivers
tilstand: til stede
update_cache: Sandt

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

Her, den repo mulighed for apt_repository modul bruges til at specificere APT-pakkeopbevaringslinjen (i mit tilfælde, deb http: // arkiv.ubuntu.com / ubuntu fokalunivers) af det pakkeopbevaringssted, du vil tilføje (i mit tilfælde Ubuntu 20.04 LTS-embedsmand univers lager).

Hvis du vil vide mere om formatet på APT-pakkeopbevaringslinjen, skal du læse Konfigurationsfiler til Ubuntu Package Repository afsnit af artiklen Sådan bruges APT Package Manager i Ubuntu 20.04 LTS.

Når jeg tilføjer et nyt pakkelager her, stat er til stede.

Det opdater_cache mulighed kan enten være Rigtigt/Ja eller Falsk/ingen.

Hvis den opdater_cache er indstillet til Rigtigt, Ansible opdaterer APT-pakkeopbevaringscachen efter tilføjelse af pakkeopbevaringsområdet.

Hvis den opdater_cache er indstillet til Falsk, Ansible opdaterer ikke APT-pakkeopbevaringscachen.

Her vil jeg have, at APT-pakkelageret opdateres, når det nye pakkelager er tilføjet. Så jeg indstillede opdater_cache til Rigtigt.

Kør nu add_repo.yaml playbook som følger:

$ ansible-playbook playbooks / add_repo.yaml

Som du kan se, kørte playbook med succes.

For at bekræfte, at pakkelageret (i mit tilfælde Ubuntu 20.04 LTS univers repository) tilføjes, kør følgende kommando:

$ grep --farve -R 'http: // arkiv.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d / *.liste

Som du kan se, er der oprettet en ny fil i / etc / apt / sources.liste.d / bibliotek (1) og Ubuntu 20.04 LTS univers pakkeopbevaring er tilføjet (2).

Som standard genererer Ansible automatisk a .liste fil i / etc / apt / sources.liste.d / katalog, afhængigt af APT-arkivlinjen.

Hvis du ønsker at vælge et bestemt filnavn (i.e. ubuntu-univers.liste) for dit arkiv kan du angive et filnavn ved hjælp af filnavn mulighed for apt_repository modul i dit add_repo.yaml playbook, som vist på skærmbilledet nedenfor.

Kør nu add_repo.yaml playbook igen.

$ ansible-playbook playbooks / add_repo.yaml

Som du kan se, er filnavnet det samme navn, som jeg angav.

$ grep --farve -R 'http: // arkiv.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d / *.liste

Fjernelse af pakkeopbevaringssteder

I dette afsnit vil jeg vise dig, hvordan du fjerner et eksisterende pakkelager fra dine Ubuntu-værter ved hjælp af Ansible.

Playbook til fjernelse af et pakkeopbevaringssted er næsten det samme som at tilføje et pakkeopbevaringssted. Så du kan bare kopiere add_repo.yaml playbook-fil og rediger den lidt. Dette er meget simpelt at gøre.

Kopier først add_repo.yaml fil til remove_repo.yaml, som følger:

$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml

Rediger remove_repo.yaml playbook som følger:

$ nano playbooks / remove_repo.yaml

Lave om tilstand: til stede til tilstand: fraværende, som markeret i skærmbilledet nedenfor. Dette er den eneste ændring, du skal foretage.

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

Kør remove_repo.yaml playbook som følger:

$ ansible-playbook playbooks / remove_repo.yaml

Kør derefter følgende kommando for at kontrollere, om pakkeopbevaringsområdet, du vil fjerne, faktisk er blevet fjernet.

$ grep --farve -R 'http: // arkiv.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d / *.liste

Som du kan se, er Ubuntu 20.04 LTS-embedsmand univers pakkeopbevaringssted, jeg tilføjede tidligere, er blevet fjernet.

BEMÆRK: Ignorer fejlmeddelelsen. Denne meddelelse betyder bare, at / etc / apt / sources.liste.d / biblioteket er tomt. Hvis du ønsker at fjerne fejlmeddelelsen, skal du blot tilføje en 2> / dev / null i slutningen af ​​kommandoen som følger. Fejlen skal være væk, når denne kommando er samlet.

$ grep --farve -R 'http: // arkiv.ubuntu.com '/ etc / apt / sources.liste
/ etc / apt / sources.liste.d / *.liste 2> / dev / null

Tilføjelse af PPA'er

I dette afsnit vil jeg vise dig, hvordan du tilføjer en PPA på dine Ubuntu-værter ved hjælp af Ansible.

Jeg vil tilføje osomon / nodejs-10.19-fokal Node.js 10.19 PPA til Ubuntu 20.04 LTS i mit eksempel.

Opret først en ny playbook add_ppa.yaml, som følger:

$ nano playbooks / add_ppa.yaml

Tilføj følgende linjer i din add_ppa.yaml playbook:

- værter: alle
bruger: ansible
blive: Sandt
opgaver:
- navn: Tilføj knude.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-fokal
tilstand: til stede
update_cache: Sandt
validate_certs: Falsk

Når du er færdig, skal du gemme add_ppa.yaml playbook ved at trykke på + x, efterfulgt af Y og .

Her, den repo mulighed for apt_repository modul bruges til at tilføje PPA osomon / nodejs-10.19-fokal (1).

Sørg for at tilføje ppa: foran PPA-navnet, i.e. ppa: osomon / nodejs-10.19-fokal.

De fleste PPA'er bruger selvsignerede certifikater, så Ansible kan ikke bekræfte dem for dig, og de kan fejle, når du kører playbook.

Du kan indstille validate_certs til Falsk for at springe certifikatvalidering over for den PPA, du tilføjer (2). Dette er hvad jeg har gjort i eksemplet i denne artikel.

BEMÆRK: Du kan også indstille validate_certs til Falsk at springe validering af certificering over, når der tilføjes pakker fra tredjeparter.

Kør add_ppa.yaml playbook som følger:

$ ansible-playbook playbooks / add_ppa.yaml

Som du kan se, en ny .liste fil til PPA osomon / nodejs-10.19-fokal er oprettet i / etc / apt / sources.liste.d / bibliotek (1).

Ved at se på indholdet af ppa_osomon_nodejs_10_19_focal_focal.liste fil, kan jeg bekræfte, at PPA er tilføjet (2).

$ tree / etc / apt / sources.liste.d /
$ cat / etc / apt / sources.liste.d / ppa_osomon_nodejs_10_19_focal_xenial.liste

Fjernelse af PPA'er

Du kan fjerne PPA'er på samme måde som vi fjernede pakkeopbevaringssteder i det tidligere afsnit af denne artikel.

Bare kopier app_ppa.yaml playbook til fjerne_ppa.yaml, som følger:

$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml

Åbn nu fjerne_ppa.yaml playbook som følger:

$ nano playbooks / remove_ppa.yaml

Skift derefter linjen tilstand: til stede til tilstand: fraværende, som markeret i skærmbilledet nedenfor.

Når du er færdig, skal du gemme fjerne_ppa.yaml playbook ved at trykke på + x, efterfulgt af Y og .

Kør fjerne_ppa.yaml playbook som følger:

$ ansible-playbook playbooks / add_ppa.yaml

Som du kan se, er ppa_osomon_nodejs_10_19_focal_focal.liste fil til osomon / nodejs-10.19-fokal PPA er ikke længere tilgængelig i / etc / apt / sources.liste.d / vejviser. Så PPA osomon / nodejs-10.19-fokal er blevet fjernet.

$ tree / etc / apt / sources.liste.d /

Ændring af PPA-kodenavn

Nogle gange understøtter den PPA, du prøver at tilføje på din Ubuntu-vært, ikke den version af Ubuntu, du kører. I så fald skal du specificere Ubuntu-versionens kodenavn manuelt, mens du tilføjer PPA.

Antag at du kører Ubuntu 20.04 med kodenavn brændvidde og du prøver at tilføje PPA xyz, men PPA xyz understøtter kun Ubuntu 16.04 LTS-kodenavn xenial. Hvis du prøver at tilføje PPA xyz, du får en fejl, da PPA ikke har nogen pakke til Ubuntu 20.04 kodenavn brændvidde. Men hvis du angiver Ubuntu 16.04 LTS-kodenavn xenial mens du tilføjer PPA, modtager du ingen fejl. Du kan muligvis installere din ønskede pakke fra PPA på denne måde, selvom den ikke understøtter den eksplicitte version af Ubuntu, du kører i øjeblikket.

Lad os se et eksempel.

Kopier først add_ppa.yaml playbook-fil til ændre_ppa_kodenavn.yaml, som følger:

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

Åbn derefter ændre_ppa_kodenavn.yaml fil som følger:

$ nano playbooks / change_ppa_codename.yaml

Her er alt, hvad du skal gøre, tilføje kodenavn mulighed med dit ønskede Ubuntu-kodenavn (i.e. kodenavn: xenial), som markeret i skærmbilledet nedenfor.

Når du er færdig, skal du gemme ændre_ppa_kodenavn.yaml fil ved at trykke på + x, efterfulgt af Y og .

Kør ændre_ppa_kodenavn.yaml playbook som følger:

$ ansible-playbook playbooks / change_ppa_codename.yaml

BEMÆRK: Jeg får en fejl, fordi den PPA, jeg har tilføjet her, kun understøtter Ubuntu 20.04 LTS. Du kan bare ignorere denne besked.

Som du kan se, er PPA tilføjet og Ubuntu-kodenavnet xenial er i APT-pakkeopbevaringslinjen.

Konklusion

Denne artikel viste dig, hvordan du administrerer (tilføjer / fjerner) Ubuntu-pakkelager og PPA'er ved hjælp af Ansible.

Det synlige apt_repository modul bruges til at styre Ubuntu pakke arkiver og PPA'er. Denne artikel forklarede alle de vigtige muligheder for apt_repository modul af Ansible.

For mere information, se siden apt_repository officiel Ansible-dokumentation.

HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...
Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...