Odgovoran apt_repository modul se može koristiti za dodavanje i uklanjanje spremišta paketa i PPA-ova na vašim Ubuntu domaćinima s lakoćom. Također možete ažurirati predmemoriju spremišta APT paketa pomoću programa Ansible apt_repository modul.
Ovaj će vam članak pokazati kako upravljati spremištima Ubuntu paketa i PPA-ima koristeći Ansible apt_repository modul. Pa, krenimo.
Preduvjeti
Ako želite isprobati primjere sadržane u ovom članku:
1) Na računalu morate imati instaliran Ansible.
2) Morate imati Ubuntu domaćin konfiguriran za Ansible automatizaciju.
Na LinuxHintu postoji mnogo članaka posvećenih Instaliranju Ansible i konfiguriranju hostova za Ansible automatizaciju. Ove članke možete provjeriti ako su vam potrebne dodatne informacije.
Postavljanje direktorija projekata
Prije nego što započnemo, bilo bi dobro stvoriti strukturu direktorija projekta, samo kako bi se stvari malo organizirale.
Za stvaranje direktorija projekta apt-ppa-repo / i sve potrebne poddirektorijume (u vašem trenutnom radnom direktoriju), pokrenite sljedeću naredbu:
$ mkdir -pv apt-ppa-repo / playbooks
Jednom kad se kreira direktorij projekta, prijeđite na direktorij projekta, kako slijedi:
$ cd apt-ppa-repo
Stvoriti domaćini inventarna datoteka, kako slijedi:
$ nano domaćini
Dodajte IP ili DNS ime hosta (vm7.nodekite.com i vm8.nodekite.com, u mom slučaju) vaših Ubuntu hostova u datoteci inventara.
Nakon što završite, datoteku spremite pritiskom na
Stvorite konfiguracijsku datoteku Ansible u direktoriju projekta, kako slijedi:
$ nano ansible.usp
Utipkajte sljedeće retke u ansible.usp datoteka:
[zadane postavke]inventar = domaćini
host_key_checking = Netačno
Nakon što završite, datoteku spremite pritiskom na
U ovom trenutku, direktorij projekta trebao bi izgledati ovako:
$ drvo
Kao što vidite, Ansible domaćini su dostupni. Dakle, možemo prijeći na sljedeći odjeljak ovog članka.
$ ansible sve -u ansible -m ping
Dodavanje spremišta paketa
U ovom odjeljku pokazat ću vam kako dodati spremište paketa u Ubuntu koristeći Ansible.
Prvo stvorite novu knjigu s igrama pod nazivom add_repo.yaml u igraonice / direktorij, kako slijedi:
$ nano playbooks / add_repo.yaml
Utipkajte sljedeće retke u add_repo.yaml datoteka:
- domaćini: svikorisnik: ansible
postati: Istina
zadaci:
- ime: Provjerite je li spremište svemira omogućeno
apt_repository:
repo: deb http: // arhiva.ubuntu.com / ubuntu žarišni svemir
stanje: prisutno
update_cache: Tačno
Nakon što završite, datoteku spremite pritiskom na
Evo, repo mogućnost apt_repository modul koristi se za određivanje linije spremišta APT paketa (u mom slučaju, deb http: // arhiva.ubuntu.com / ubuntu žarišni svemir) spremišta paketa koje želite dodati (u mom slučaju, Ubuntu 20.04 službenik LTS-a svemir spremište).
Da biste saznali više o formatu linije spremišta APT paketa, pročitajte Datoteke za konfiguraciju spremišta Ubuntu paketa odjeljak članka Kako koristiti APT Package Manager u Ubuntu 20.04 LTS.
Kako ovdje dodajem novo spremište paketa, država je predstaviti.
The update_cache opcija može biti Pravi/Da ili Lažno/Ne.
Ako je update_cache postavljeno je na Pravi, Ansible će ažurirati predmemoriju spremišta paketa APT nakon dodavanja spremišta paketa.
Ako je update_cache postavljeno je na Lažno, Ansible neće ažurirati predmemoriju spremišta APT paketa.
Ovdje želim da se spremište APT paketa ažurira kada se doda novo spremište paketa. Dakle, postavio sam update_cache do Pravi.
Sada pokrenite add_repo.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / add_repo.yamlKao što vidite, priručnik se uspješno izvodio.
Da biste potvrdili da je spremište paketa (u mom slučaju Ubuntu 20.04 LTS svemir spremište), pokrenite sljedeću naredbu:
$ grep --color -R 'http: // arhiva.ubuntu.com '/ etc / apt / sources.popis/ etc / apt / sources.popis.d / *.popis
Kao što vidite, nova datoteka je kreirana u / etc / apt / sources.popis.d / direktorij (1) i Ubuntu 20.04 LTS svemir dodano je spremište paketa (2).
Prema zadanim postavkama, Ansible će automatski generirati a .popis datoteku u / etc / apt / sources.popis.d / direktorija, ovisno o liniji APT spremišta.
Ako želite odabrati određeno ime datoteke (tj.e. ubuntu-svemir.popis) za svoje spremište možete odrediti naziv datoteke pomoću naziv datoteke mogućnost apt_repository modul u vašem add_repo.yaml playbook, kao što je prikazano na snimci zaslona u nastavku.
Sada pokrenite add_repo.yaml opet knjiga s igrama.
$ ansible-playbook playbooks / add_repo.yaml
Kao što vidite, naziv datoteke je isto ime koje sam naveo.
$ grep --color -R 'http: // arhiva.ubuntu.com '/ etc / apt / sources.popis/ etc / apt / sources.popis.d / *.popis
Uklanjanje spremišta paketa
U ovom odjeljku pokazat ću vam kako ukloniti postojeće spremište paketa s vaših Ubuntu hostova pomoću programa Ansible.
Priručnik za uklanjanje spremišta paketa gotovo je isti kao i dodavanje spremišta paketa. Dakle, možete jednostavno kopirati add_repo.yaml playbook datoteku i malo je izmijenite. To je vrlo jednostavno učiniti.
Prvo kopirajte add_repo.yaml podnijeti na remove_repo.yaml, kako slijedi:
$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml
Uredite remove_repo.yaml playbook, kako slijedi:
$ nano playbooks / remove_repo.yaml
Promijeniti stanje: prisutno do stanje: odsutno, kako je označeno na snimci zaslona u nastavku. Ovo će biti jedina promjena koju trebate unijeti.
Nakon što završite, datoteku spremite pritiskom na
Pokrenite remove_repo.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / remove_repo.yaml
Zatim pokrenite sljedeću naredbu da provjerite je li spremište paketa koje želite ukloniti stvarno uklonjeno.
$ grep --color -R 'http: // arhiva.ubuntu.com '/ etc / apt / sources.popis/ etc / apt / sources.popis.d / *.popis
Kao što vidite, Ubuntu 20.04 službenik LTS-a svemir Uklonjeno je spremište paketa koje sam ranije dodao.
BILJEŠKA: Zanemarite poruku pogreške. Ova poruka samo znači da / etc / apt / sources.popis.d / direktorij je prazan. Ako želite ukloniti poruku o pogrešci, samo dodajte 2> / dev / null na kraju naredbe, kako slijedi. Pogrešku bi trebalo ukloniti nakon uvođenja ove naredbe.
$ grep --color -R 'http: // arhiva.ubuntu.com '/ etc / apt / sources.popis/ etc / apt / sources.popis.d / *.popis 2> / dev / null
Dodavanje PPA-ova
U ovom odjeljku pokazat ću vam kako dodati PPA na vaše Ubuntu hostove pomoću Ansible.
Ja ću dodati osomon / nodejs-10.19-žarišna Čvor.js 10.19 PPA za Ubuntu 20.04 LTS u mom primjeru.
Prvo izradite novu knjigu pjesama add_ppa.yaml, kako slijedi:
$ nano playbooks / add_ppa.yaml
Dodajte sljedeće retke u svoj add_ppa.yaml knjiga s igrama:
- domaćini: svikorisnik: ansible
postati: Istina
zadaci:
- ime: Dodaj čvor.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-žarišna
stanje: prisutno
update_cache: Tačno
validate_certs: Netačno
Nakon što završite, spremite add_ppa.yaml playbook pritiskom na
Evo, repo mogućnost apt_repository modul koristi se za dodavanje PPA-a osomon / nodejs-10.19-žarišna (1).
Obavezno dodajte ppa: prije naziva PPA, t.j.e. ppa: osomon / nodejs-10.19-žarišna.
Većina PPA-ova koristi samopotpisane certifikate, tako da ih Ansible ne može provjeriti umjesto vas i mogu pogriješiti kad pokrenete knjigu priručnika.
Možete postaviti validate_certs do Lažno da preskočite provjeru valjanosti certifikata za PPA koji dodajete (2). To sam učinio u primjeru iz ovog članka.
BILJEŠKA: Također možete postaviti validate_certs do Lažno za preskakanje provjere valjanosti prilikom dodavanja spremišta paketa treće strane.
Pokrenite add_ppa.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / add_ppa.yaml
Kao što vidite, novi .popis datoteka za PPA osomon / nodejs-10.19-žarišna je stvoren u / etc / apt / sources.popis.d / imenik (1).
Uvidom u sadržaj ppa_osomon_nodejs_10_19_fokalno_fokalno.popis datoteku, mogu potvrditi da je PPA dodan (2).
$ stablo / etc / apt / sources.popis.d /$ cat / etc / apt / sources.popis.d / ppa_osomon_nodejs_10_19_focal_xenial.popis
Uklanjanje PPA-a
PPA-ove možete ukloniti na isti način na koji smo uklonili spremišta paketa u prethodnom odjeljku ovog članka.
Samo kopirajte app_ppa.yaml playbook za ukloni_ppa.yaml, kako slijedi:
$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml
Sada otvorite ukloni_ppa.yaml playbook, kako slijedi:
$ nano playbooks / remove_ppa.yaml
Zatim promijenite liniju stanje: prisutno do stanje: odsutno, kako je označeno na snimci zaslona u nastavku.
Nakon što završite, spremite ukloni_ppa.yaml playbook pritiskom na
Pokrenite ukloni_ppa.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / add_ppa.yaml
Kao što vidite, ppa_osomon_nodejs_10_19_fokalno_fokalno.popis datoteka za osomon / nodejs-10.19-žarišna PPA više nije dostupan u / etc / apt / sources.popis.d / imenik. Dakle, PPA osomon / nodejs-10.19-žarišna uklonjeno je.
$ stablo / etc / apt / sources.popis.d /
Promjena PPA kodnog imena
Ponekad PPA koji pokušavate dodati na vaš Ubuntu domaćin ne podržava verziju Ubuntua koju koristite. U tom slučaju morat ćete ručno odrediti kodno ime verzije Ubuntua dok dodajete PPA.
Pretpostavimo da koristite Ubuntu 20.04 s kodnim imenom žarišna a vi pokušavate dodati PPA xyz, ali PPA xyz podržava samo Ubuntu 16.04 LTS kodno ime xenial. Ako pokušate dodati PPA xyz, dobit ćete pogrešku, jer PPA nema nijedan paket za Ubuntu 20.04 kodno ime žarišna. Ali, ako navedete Ubuntu 16.04 LTS kodno ime xenial dok dodajete PPA, nećete dobiti nikakvu pogrešku. Na taj ćete način možda moći instalirati željeni paket s PPA-a, čak i ako ne podržava eksplicitnu verziju Ubuntu-a koju trenutno koristite.
Pogledajmo primjer.
Prvo kopirajte add_ppa.yaml datoteka playbooka u change_ppa_codename.yaml, kako slijedi:
$ cp -v playbooks / add_ppa.yaml playbooks / change_ppa_codename.yaml
Zatim otvorite change_ppa_codename.yaml datoteka, kako slijedi:
$ nano playbooks / change_ppa_codename.yaml
Ovdje sve što morate učiniti je dodati kodno ime opcija sa željenim Ubuntu kodnim imenom (tj.e. kodno ime: xenial), kao što je označeno na snimci zaslona u nastavku.
Nakon što završite, spremite change_ppa_codename.yaml datoteku pritiskom na
Pokrenite change_ppa_codename.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / change_ppa_codename.yamlBILJEŠKA: Dobivam pogrešku jer PPA koji sam ovdje dodao podržava samo Ubuntu 20.04 LTS. Možete jednostavno ignorirati ovu poruku.
Kao što vidite, PPA je dodan i Ubuntu kodno ime xenial nalazi se u retku spremišta APT paketa.
Zaključak
Ovaj vam je članak pokazao kako upravljati (dodati / ukloniti) spremištima Ubuntu paketa i PPA-ima koristeći Ansible.
Odgovoran apt_repository modul koristi se za upravljanje spremištima Ubuntu paketa i PPA-ovima. Ovaj je članak objasnio sve važne mogućnosti apt_repository modul Ansible.
Za više informacija provjerite službenu stranicu dokumentacije o aplikacijama apt_repository.