Administrer Ubuntu Package Repositories og PPAs ved hjelp av Ansible

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

Ansibelen apt_repository Modul kan brukes til å legge til og fjerne pakkelager og PPAer på Ubuntu -vertene dine med letthet. Du kan også oppdatere APT Package Repository Cache ved hjelp av Ansible apt_repository modul.

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

Forutsetninger

Hvis du vil prøve eksemplene som er inkludert i denne artikkelen:

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

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

Sette opp prosjektkatalog

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

For å opprette 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 Lagerfil, som følger:

$ Nano -verter

Legg til verten IP eller DNS -navn (VM7.Nodekite.com og VM8.Nodekite.com, I mitt tilfelle) av Ubuntu -vertene dine i inventarfilen.

Når du er ferdig, lagre 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:

[standardverdier]
Inventory = verter
host_key_checking = falsk

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

På dette tidspunktet skal prosjektkatalogen se ut som følgende:

$ tre

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 må du lage en ny spillbok som heter add_repo.Yaml i Playbooks/ 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: Forsikre deg om at Universe Repository er aktivert
apt_repository:
repo: Deb http: // arkiv.Ubuntu.com/ubuntu fokalt univers
Stat: Nåværende
Update_cache: sant

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

Her, The repo Alternativ for apt_repository Modul brukes til å spesifisere Apt Package Repository Line (i mitt tilfelle, Deb http: // Arkiv.Ubuntu.com/ubuntu fokalt univers) av pakkelageret du vil legge til (i mitt tilfelle, Ubuntu 20.04 LTS OFFICIAL univers oppbevaringssted).

For å lære mer om formatet på Apt Package Repository -linjen, les Ubuntu Package Repository Configuration Files delen av artikkelen hvordan du bruker APT Package Manager i Ubuntu 20.04 LTS.

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

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

Hvis update_cache er satt til ekte, Ansible vil oppdatere APT Package Repository Cache etter å ha lagt til pakkelageret.

Hvis update_cache er satt til Falsk, Ansible vil ikke oppdatere APT Package Repository Cache.

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

Nå, løp add_repo.Yaml Playbook, som følger:

$ Ansible-Playbook Playbooks/add_repo.Yaml

Som du ser kjørte spillboken vellykket.

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

$ grep -farge -r 'http: // arkiv.Ubuntu.com '/etc/apt/kilder.liste
/etc/apt/kilder.liste.d/*.liste

Som du ser er det opprettet en ny fil i /etc/apt/kilder.liste.d/ Katalog (1) og Ubuntu 20.04 LTS univers Pakkelageret er lagt til (2).

Som standard vil Ansible automatisk generere a .liste fil i /etc/apt/kilder.liste.d/ Katalog, avhengig av APT -depotlinjen.

Hvis du ønsker å velge et bestemt filnavn (i.e. Ubuntu-Universe.liste) For depotet ditt kan du spesifisere et filnavn ved hjelp av filnavn Alternativ for apt_repository modul i din add_repo.Yaml Playbook, som vist på skjermbildet nedenfor.

Nå, løp add_repo.Yaml Playbook igjen.

$ Ansible-Playbook Playbooks/add_repo.Yaml

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

$ grep -farge -r 'http: // arkiv.Ubuntu.com '/etc/apt/kilder.liste
/etc/apt/kilder.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.

Playbooken for å fjerne 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.

Først kopierer du add_repo.Yaml fil til Fjern_repo.Yaml, følgende:

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

Rediger Fjern_repo.Yaml Playbook, som følger:

$ nano playbooks/remove_repo.Yaml

Endring Stat: Nåværende til Stat: fraværende, Som merket på skjermbildet nedenfor. Dette vil være den eneste endringen du trenger å gjøre.

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

Kjør Fjern_repo.Yaml Playbook, 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 -farge -r 'http: // arkiv.Ubuntu.com '/etc/apt/kilder.liste
/etc/apt/kilder.liste.d/*.liste

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

MERK: Ignorer feilmeldingen. Denne meldingen betyr bare at /etc/apt/kilder.liste.d/ Katalogen er tom. Hvis du ønsker å fjerne feilmeldingen, bare legg til en 2>/dev/null På slutten av kommandoen, som følger. Feilen skal være borte etter helhet denne kommandoen.

$ grep -farge -r 'http: // arkiv.Ubuntu.com '/etc/apt/kilder.liste
/etc/apt/kilder.liste.d/*.Liste 2>/dev/null

Legge til PPA -er

I denne delen vil jeg vise deg hvordan du legger til en PPA på Ubuntu -vertene dine 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 må du lage en ny spillbok add_ppa.Yaml, følgende:

$ nano playbooks/add_ppa.Yaml

Legg til følgende linjer i din add_ppa.Yaml Playbook:

- Verter: Alle
Bruker: Ansible
bli: sant
oppgaver:
- Navn: Legg til node.JS 10.19 PPA
apt_repository:
Repo: PPA: OSOMON/NODEJS-10.19-fokal
Stat: Nåværende
Update_cache: sant
validate_certs: falsk

Når du er ferdig, kan du lagre add_ppa.Yaml Playbook ved å trykke + X, etterfulgt av Y og .

Her, The repo Alternativ for apt_repository Modul brukes til å legge til PPA OSOMON/NODEJS-10.19-fokal (1).

Sørg for å legge til PPA: Før PPA -navnet, jeg.e. PPA: OSOMON/NODEJS-10.19-fokal.

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

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

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

Kjør add_ppa.Yaml Playbook, som følger:

$ ansible-playbook playbooks/add_ppa.Yaml

Som du kan se, en ny .liste fil for PPA OSOMON/NODEJS-10.19-fokal er opprettet i /etc/apt/kilder.liste.d/ Katalog (1).

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

$ tre/etc/apt/kilder.liste.d/
$ katt/etc/apt/kilder.liste.d/ppa_osomon_nodejs_10_19_focal_xenial.liste

Fjerne PPA -er

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 Playbook to Fjern_ppa.Yaml, følgende:

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

Nå, åpne Fjern_ppa.Yaml Playbook, som følger:

$ nano playbooks/remove_ppa.Yaml

Neste, endre linjen Stat: Nåværende til Stat: fraværende, Som merket på skjermbildet nedenfor.

Når du er ferdig, kan du lagre Fjern_ppa.Yaml Playbook ved å trykke + X, etterfulgt av Y og .

Kjør Fjern_ppa.Yaml Playbook, som følger:

$ ansible-playbook playbooks/add_ppa.Yaml

Som du kan se, PPA_OSOMON_NODEJS_10_19_FOCAL_FOCAL.liste fil for OSOMON/NODEJS-10.19-fokal PPA er ikke lenger tilgjengelig i /etc/apt/kilder.liste.d/ katalog. Så PPA OSOMON/NODEJS-10.19-fokal har blitt fjernet.

$ tre/etc/apt/kilder.liste.d/

Endre PPA -kodenavn

Noen ganger støtter PPA du prøver å legge til Ubuntu -verten din ikke versjonen av Ubuntu du kjører. I så fall må du spesifisere Ubuntu -versjonen kodenavn 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, Du vil få en feil, ettersom 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. Det kan hende du kan installere ønsket pakke fra PPA på denne måten, selv om den ikke støtter den eksplisitte versjonen av Ubuntu du for øyeblikket kjører for øyeblikket.

La oss se et eksempel.

Først kopierer du add_ppa.Yaml Playbook -fil til Change_PPA_CodeName.Yaml, følgende:

$ cp -v playbooks/add_ppa.YAML Playbooks/Change_PPA_CodeName.Yaml

Neste, åpne Change_PPA_CodeName.Yaml fil, som følger:

$ nano playbooks/change_ppa_codeName.Yaml

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

Når du er ferdig, kan du lagre Change_PPA_CodeName.Yaml fil ved å trykke på + X, etterfulgt av Y og .

Kjør Change_PPA_CodeName.Yaml Playbook, 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 blitt lagt til og Ubuntu -kodenavnet xenial er i den treffende pakkelagde linjen.

Konklusjon

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

Ansibelen apt_repository Modul brukes til å administrere Ubuntu -pakkelister og PPA -er. Denne artikkelen forklarte alle viktige alternativene til apt_repository Ansible modul.

For mer informasjon, sjekk APT_REPOSITORITORS OFFICIAL ANSIBLE DOKUMENTASJONSIDE.