Ansible

Administrer Ubuntu Package Repositories og PPA-er ved hjelp av Ansible

Administrer Ubuntu Package Repositories og PPA-er ved hjelp av Ansible
Å legge til og fjerne pakkeoppbevaringssteder og PPAer i Ubuntu på ditt personlige system kan være en veldig enkel oppgave. Men hvis du har mange Ubuntu-maskiner, for eksempel 10 eller mer, vil man manuelt legge til og fjerne pakkeoppbevaringssteder og PPA-er på hvert system en etter en, men både tidkrevende og ineffektiv.

The Ansible apt_repository modulen kan brukes til å legge til og fjerne pakkeholdere og PPAer på dine Ubuntu-verter med letthet. Du kan også oppdatere APT-pakkelagerbufferen ved hjelp av Ansible apt_repository modul.

Denne artikkelen viser deg hvordan du administrerer Ubuntu-pakkeholdere og PPA-er ved hjelp av Ansible apt_repository modul. Så la oss komme i gang.

Forutsetninger

Hvis du vil prøve eksemplene i denne artikkelen:

1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha en Ubuntu-vert konfigurert for Ansible automatisering.

Det er mange artikler om LinuxHint dedikert til å installere Ansible og konfigurere verter for Ansible automatisering. Du kan sjekke ut disse artiklene hvis du trenger ytterligere informasjon.

Sette opp prosjektkatalog

Før vi begynner, vil det være en god ide å lage en prosjektkatalogstruktur, bare for å holde ting litt mer organisert.

Å lage prosjektkatalogen apt-ppa-repo / og alle nødvendige underkataloger (i din nåværende arbeidskatalog), kjør følgende kommando:

$ mkdir -pv apt-ppa-repo / playbooks

Når prosjektkatalogen er opprettet, navigerer du til prosjektkatalogen, som følger:

$ cd apt-ppa-repo

Lage en verter inventarfil, som følger:

$ nano verter

Legg til verts-IP- eller DNS-navn (vm7.nodekite.com og vm8.nodekite.com, i mitt tilfelle) av Ubuntu-vertene dine i lagerfilen.

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Opprett en Ansible-konfigurasjonsfil i prosjektkatalogen, som følger:

$ nano ansible.cfg

Skriv inn følgende linjer i ansible.cfg fil:

[standard]
inventar = verter
host_key_checking = Usann

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

På dette tidspunktet skal prosjektkatalogen se slik ut:

$ treet

Som du kan se, er Ansible-vertene tilgjengelige. Så vi kan gå videre til neste del av denne artikkelen.

$ ansible all -u ansible -m ping

Legge til pakkelager

I denne delen vil jeg vise deg hvordan du legger til et pakkelager i Ubuntu ved hjelp av Ansible.

Først oppretter du en ny spillbok som heter add_repo.yaml i lekebøker / katalog, som følger:

$ nano playbooks / add_repo.yaml

Skriv inn følgende linjer i add_repo.yaml fil:

- verter: alle
bruker: ansible
bli: Sant
oppgaver:
- navn: Kontroller at universellageret er aktivert
apt_repository:
repo: deb http: // arkiv.ubuntu.com / ubuntu fokalunivers
tilstand: til stede
update_cache: Sant

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Her, den repo alternativet til apt_repository modulen brukes til å spesifisere APT-pakkelagerlinjen (i mitt tilfelle, deb http: // arkiv.ubuntu.com / ubuntu fokalunivers) av pakkelageret du vil legge til (i mitt tilfelle Ubuntu 20.04 LTS offisiell univers oppbevaringssted).

Hvis du vil lære mer om formatet på APT-pakkelagerlinjen, kan du lese Ubuntu Package Repository konfigurasjonsfiler delen av artikkelen Hvordan bruke APT Package Manager i Ubuntu 20.04 LTS.

Når jeg legger til et nytt pakkelager her, stat er tilstede.

De update_cache alternativet kan enten være ekte/ja eller Falsk/Nei.

Hvis den update_cache er satt til ekte, Ansible oppdaterer hurtigbufferen for APT-pakken etter å ha lagt til pakkelageret.

Hvis den update_cache er satt til Falsk, Ansible oppdaterer ikke hurtigbufferen til APT-pakken.

Her vil jeg at APT-pakkelageret skal oppdateres når det nye pakkelageret er lagt til. Så jeg satte inn update_cache til ekte.

Kjør nå add_repo.yaml spillbok, som følger:

$ ansible-playbook playbooks / add_repo.yaml

Som du kan se, kjørte spillboken vellykket.

For å bekrefte at pakkelageret (i mitt tilfelle Ubuntu 20.04 LTS univers repository) er lagt til, kjør følgende kommando:

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

Som du kan se, er en ny fil opprettet i / etc / apt / sources.liste.d / katalog (1) og Ubuntu 20.04 LTS univers pakkelager er lagt til (2).

Som standard vil Ansible automatisk generere a .liste filen i / etc / apt / sources.liste.d / katalog, avhengig av APT-depotlinjen.

Hvis du ønsker å velge et bestemt filnavn (i.e. ubuntu-universet.liste) for depotet ditt, kan du angi et filnavn ved hjelp av filnavn alternativet til apt_repository modul i din add_repo.yaml spillbok, som vist på skjermbildet nedenfor.

Kjør nå add_repo.yaml spillbok igjen.

$ ansible-playbook playbooks / add_repo.yaml

Som du kan se, er filnavnet det samme navnet som jeg spesifiserte.

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

Fjerning av pakkelager

I denne delen vil jeg vise deg hvordan du fjerner et eksisterende pakkelager fra Ubuntu-vertene dine ved hjelp av Ansible.

Spillboken for fjerning av et pakkelager er nesten det samme som å legge til et pakkelager. Så du kan bare kopiere add_repo.yaml playbook-filen og endre den litt. Dette er veldig enkelt å gjøre.

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

$ cp -v spillbøker / add_repo.yaml playbooks / remove_repo.yaml

Rediger remove_repo.yaml spillbok, som følger:

$ nano playbooks / remove_repo.yaml

Endring tilstand: til stede til tilstand: fraværende, som markert i skjermbildet nedenfor. Dette vil være den eneste endringen du trenger å gjøre.

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Kjør remove_repo.yaml spillbok, som følger:

$ ansible-playbook playbooks / remove_repo.yaml

Deretter kjører du følgende kommando for å bekrefte om pakkelageret du vil fjerne, faktisk er fjernet.

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

Som du kan se, er Ubuntu 20.04 LTS offisiell univers pakkelageret jeg la til tidligere er fjernet.

MERK: Ignorer feilmeldingen. Denne meldingen betyr bare at / etc / apt / sources.liste.d / katalogen er tom. Hvis du vil fjerne feilmeldingen, er det bare å legge til en 2> / dev / null på slutten av kommandoen, som følger. Feilen skal være borte etter at denne kommandoen er fullført.

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

Legge til PPAer

I denne delen vil jeg vise deg hvordan du legger til en PPA på dine Ubuntu-verter ved hjelp av Ansible.

Jeg vil legge til osomon / nodejs-10.19-fokal Node.js 10.19 PPA for Ubuntu 20.04 LTS i mitt eksempel.

Først oppretter du en ny lekebok add_ppa.yaml, som følger:

$ nano playbooks / add_ppa.yaml

Legg til følgende linjer i din add_ppa.yaml spillbok:

- verter: alle
bruker: ansible
bli: Sant
oppgaver:
- navn: Legg til node.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-fokal
tilstand: til stede
update_cache: Sant
validate_certs: False

Når du er ferdig, lagrer du add_ppa.yaml spillebok ved å trykke + X, etterfulgt av Y og .

Her, den repo alternativet til apt_repository modul brukes til å legge til PPA osomon / nodejs-10.19-fokal (1).

Husk å legge til ppa: foran PPA-navnet, i.e. ppa: osomon / nodejs-10.19-fokal.

De fleste PPA-ene bruker selvsignerte sertifikater, så Ansible kan ikke bekrefte dem for deg, og de kan feile når du kjører playbooken.

Du kan stille inn validate_certs til Falsk å hoppe over sertifikatvalidering for PPA du legger til (2). Dette er hva jeg har gjort i eksemplet i denne artikkelen.

MERK: Du kan også stille inn validate_certs til Falsk å hoppe over sertifiseringsvalidering når du legger til tredjeparts pakkelager.

Kjør add_ppa.yaml spillbok, som følger:

$ ansible-playbook playbooks / add_ppa.yaml

Som du kan se, en ny .liste filen for PPA osomon / nodejs-10.19-fokal har blitt opprettet i / etc / apt / sources.liste.d / katalog (1).

Ved å se på innholdet i ppa_osomon_nodejs_10_19_focal_focal.liste fil, kan jeg bekrefte at PPA er lagt til (2).

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

Fjerne PPAer

Du kan fjerne PPA-er på samme måte som vi fjernet pakkelager i den tidligere delen av denne artikkelen.

Bare kopier app_ppa.yaml lekebok til remove_ppa.yaml, som følger:

$ cp -v spillbøker / add_repo.yaml playbooks / remove_repo.yaml

Nå åpner du remove_ppa.yaml spillbok, som følger:

$ nano playbooks / remove_ppa.yaml

Deretter endrer du linjen tilstand: til stede til tilstand: fraværende, som markert i skjermbildet nedenfor.

Når du er ferdig, lagrer du remove_ppa.yaml spillebok ved å trykke + X, etterfulgt av Y og .

Kjør remove_ppa.yaml spillbok, som følger:

$ ansible-playbook playbooks / add_ppa.yaml

Som du kan se, er ppa_osomon_nodejs_10_19_focal_focal.liste fil for osomon / nodejs-10.19-fokal PPA er ikke lenger tilgjengelig i / etc / apt / sources.liste.d / katalog. Så, PPA osomon / nodejs-10.19-fokal har blitt fjernet.

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

Endrer PPA-kodenavn

Noen ganger støtter ikke PPA du prøver å legge til på Ubuntu-verten din versjonen av Ubuntu du kjører. I så fall må du spesifisere kodenavnet på Ubuntu-versjonen manuelt mens du legger til PPA.

Anta at du kjører Ubuntu 20.04 med kodenavn fokal og du prøver å legge til PPA xyz, men PPA xyz støtter bare Ubuntu 16.04 LTS kodenavn xenial. Hvis du prøver å legge til PPA xyz, vil du få en feil, siden PPA ikke har noen pakke for Ubuntu 20.04 kodenavn fokal. Men hvis du spesifiserer Ubuntu 16.04 LTS kodenavn xenial mens du legger til PPA, vil du ikke motta noen feil. Du kan kanskje installere ønsket pakke fra PPA på denne måten, selv om den ikke støtter den eksplisitte versjonen av Ubuntu du kjører for øyeblikket.

La oss se et eksempel.

Kopier først add_ppa.yaml spillbokfil til endre_ppa_kodenavn.yaml, som følger:

$ cp -v spillbøker / add_ppa.yaml playbooks / change_ppa_codename.yaml

Deretter åpner du endre_ppa_kodenavn.yaml filen, som følger:

$ nano playbooks / change_ppa_codename.yaml

Her er alt du trenger å gjøre å legge til kodenavn alternativ med ønsket Ubuntu-kodenavn (i.e. kodenavn: xenial), som markert i skjermbildet nedenfor.

Når du er ferdig, lagrer du endre_ppa_kodenavn.yaml filen ved å trykke på + X, etterfulgt av Y og .

Kjør endre_ppa_kodenavn.yaml spillbok, som følger:

$ ansible-playbook playbooks / change_ppa_codename.yaml

MERK: Jeg får en feil fordi PPA jeg har lagt til her bare støtter Ubuntu 20.04 LTS. Du kan bare ignorere denne meldingen.

Som du kan se, er PPA lagt til og Ubuntu-kodenavnet xenial er i APT-pakkelagerlinjen.

Konklusjon

Denne artikkelen viste deg hvordan du administrerer (legger til / fjerner) Ubuntu-pakkelager og PPA-er ved hjelp av Ansible.

The Ansible apt_repository modulen brukes til å administrere Ubuntu-pakkeholdere og PPAer. Denne artikkelen forklarte alle viktige alternativer for apt_repository modul av Ansible.

For mer informasjon, sjekk den offisielle siden for apt_repository Ansible-dokumentasjon.

Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...
Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...