Ansible apt_repository modul lahko z lahkoto dodate in odstranite repozitorije paketov in PPA-je na vaših gostiteljih Ubuntu. Predpomnilnik repozitorija paketov APT lahko posodobite tudi z uporabo programa Ansible apt_repository modul.
Ta članek vam bo pokazal, kako upravljati repozitorije paketov Ubuntu in PPA s pomočjo programa Ansible apt_repository modul. Torej, začnimo.
Pogoji
Če želite preizkusiti primere iz tega članka:
1) V računalniku mora biti nameščen Ansible.
2) Za avtomatizacijo Ansible mora biti konfiguriran gostitelj Ubuntu.
V LinuxHintu je veliko člankov, namenjenih namestitvi programa Ansible in konfiguriranju gostiteljev za avtomatizacijo Ansible. Te članke si lahko ogledate, če potrebujete dodatne informacije.
Nastavitev imenika projektov
Preden začnemo, bo dobro ustvariti strukturo imenika projekta, samo da bodo stvari nekoliko bolj organizirane.
Če želite ustvariti imenik projekta apt-ppa-repo / in vse zahtevane podimenike (v trenutnem delovnem imeniku) zaženite naslednji ukaz:
$ mkdir -pv apt-ppa-repo / playbooks
Ko je imenik projekta ustvarjen, se pomaknite do imenika projekta, kot sledi:
$ cd apt-ppa-repo
Ustvariti gostitelji inventarna datoteka, kot sledi:
$ nano gostitelji
Dodajte ime gostitelja IP ali DNS (vm7.nodekite.com in vm8.nodekite.com, v mojem primeru) vaših gostiteljev Ubuntu v inventarni datoteki.
Ko končate, datoteko shranite s pritiskom na
V imeniku projekta ustvarite konfiguracijsko datoteko Ansible, kot sledi:
$ nano ansible.prim
V vrstico vnesite naslednje vrstice ansible.prim mapa:
[privzeto]inventar = gostitelji
host_key_checking = False
Ko končate, datoteko shranite s pritiskom na
Na tej točki mora biti imenik projekta videti tako:
$ drevo
Kot vidite, so gostitelji Ansible dostopni. Torej lahko preidemo na naslednji odsek tega članka.
$ ansible vse -u ansible -m ping
Dodajanje skladišč paketov
V tem razdelku vam bom pokazal, kako v Ubuntu dodate skladišče paketov z uporabo programa Ansible.
Najprej ustvarite novo igro z imenom add_repo.yaml v igralne knjige / imenik, kot sledi:
$ nano playbooks / add_repo.yaml
V vrstico vnesite naslednje vrstice add_repo.yaml mapa:
- gostitelji: vsiuporabnik: ansible
postati: Resnično
naloge:
- ime: Prepričajte se, da je omogočena shramba vesolja
apt_repository:
repo: deb http: // arhiv.ubuntu.com / ubuntu osrednje vesolje
stanje: prisotno
update_cache: True
Ko končate, datoteko shranite s pritiskom na
Tukaj repo možnost apt_repository modul se uporablja za določitev vrstice skladišča paketov APT (v mojem primeru, deb http: // arhiv.ubuntu.com / ubuntu osrednje vesolje) repozitorija paketov, ki ga želite dodati (v mojem primeru Ubuntu 20.04 Uradnik LTS vesolje repozitorij).
Če želite izvedeti več o obliki vrstice skladišča paketov APT, preberite Datoteke za konfiguracijo skladišča paketov Ubuntu odsek članka Kako uporabljati upravitelja paketov APT v Ubuntu 20.04 LTS.
Ko sem dodal novo skladišče paketov, država je prisoten.
The update_cache možnost je lahko Prav/ja ali Lažno/št.
Če je update_cache je nastavljeno na Prav, Ansible bo po dodajanju repozitorija paketov posodobil predpomnilnik repozitorija paketov APT.
Če je update_cache je nastavljeno na Lažno, Ansible ne bo posodobil predpomnilnika repozitorija paketov APT.
Tukaj želim, da se shrani skladišče paketov APT, ko se doda novo skladišče paketov. Tako sem nastavil update_cache do Prav.
Zdaj zaženite add_repo.yaml playbook, kot sledi:
$ ansible-playbook playbooks / add_repo.yamlKot lahko vidite, je knjiga iger uspešno tekla.
Da potrdim, da je repozitorij paketov (v mojem primeru Ubuntu 20.04 LTS vesolje repozitorij), zaženite naslednji ukaz:
$ grep --color -R 'http: // arhiv.ubuntu.com '/ etc / apt / sources.seznam/ etc / apt / sources.seznam.d / *.seznam
Kot lahko vidite, je bila v datoteki / etc / apt / sources.seznam.d / imenik (1) in Ubuntu 20.04 LTS vesolje dodano je repozitorij paketov (2).
Privzeto bo Ansible samodejno ustvaril a .seznam v datoteki / etc / apt / sources.seznam.d / imenik, odvisno od vrstice odlagališča APT.
Če želite izbrati določeno ime datoteke (tj.e. ubuntu-vesolje.seznam) za svoje skladišče lahko določite ime datoteke s pomočjo Ime datoteke možnost apt_repository modul v vašem add_repo.yaml playbook, kot je prikazano na spodnjem posnetku zaslona.
Zdaj zaženite add_repo.yaml spet playbook.
$ ansible-playbook playbooks / add_repo.yaml
Kot lahko vidite, je ime datoteke isto ime, kot sem ga navedel.
$ grep --color -R 'http: // arhiv.ubuntu.com '/ etc / apt / sources.seznam/ etc / apt / sources.seznam.d / *.seznam
Odstranjevanje skladišč paketov
V tem razdelku vam bom pokazal, kako odstranite obstoječe repozitorij paketov z gostiteljev Ubuntu z uporabo programa Ansible.
Navodila za odstranjevanje repozitorija paketov so skoraj enaka dodajanju repozitorija paketov. Torej, lahko samo kopirate add_repo.yaml datoteko playbook in jo nekoliko spremenite. To je zelo enostavno narediti.
Najprej kopirajte add_repo.yaml datoteko v remove_repo.yaml, kot sledi:
$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml
Uredite remove_repo.yaml playbook, kot sledi:
$ nano playbooks / remove_repo.yaml
Sprememba stanje: prisotno do stanje: odsoten, kot je označeno na spodnjem posnetku zaslona. To bo edina sprememba, ki jo morate narediti.
Ko končate, datoteko shranite s pritiskom na
Zaženite remove_repo.yaml playbook, kot sledi:
$ ansible-playbook playbooks / remove_repo.yaml
Nato zaženite naslednji ukaz, da preverite, ali je repozitorij paketov, ki ga želite odstraniti, dejansko odstranjen.
$ grep --color -R 'http: // arhiv.ubuntu.com '/ etc / apt / sources.seznam/ etc / apt / sources.seznam.d / *.seznam
Kot lahko vidite, Ubuntu 20.04 Uradnik LTS vesolje repozitorij paketov, ki sem ga dodal prej, je bil odstranjen.
OPOMBA: Prezri sporočilo o napaki. To sporočilo samo pomeni, da / etc / apt / sources.seznam.d / imenik je prazen. Če želite odstraniti sporočilo o napaki, preprosto dodajte 2> / dev / null na koncu ukaza, kot sledi. Po vnosu tega ukaza mora biti napaka odpravljena.
$ grep --color -R 'http: // arhiv.ubuntu.com '/ etc / apt / sources.seznam/ etc / apt / sources.seznam.d / *.seznam 2> / dev / null
Dodajanje PPA
V tem razdelku vam bom pokazal, kako z gostiteljskim programom Ansible dodate PPA na gostitelje Ubuntu.
Dodal bom osomon / nodejs-10.19-goriščna Vozlišče.js 10.19 PPA za Ubuntu 20.04 LTS v mojem primeru.
Najprej ustvarite novo knjigo iger add_ppa.yaml, kot sledi:
$ nano playbooks / add_ppa.yaml
Dodajte naslednje vrstice v svoj add_ppa.yaml knjiga z igrami:
- gostitelji: vsiuporabnik: ansible
postati: Resnično
naloge:
- ime: Dodaj vozlišče.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-goriščna
stanje: prisotno
update_cache: True
validate_certs: False
Ko končate, shranite add_ppa.yaml playbook s pritiskom na
Tukaj repo možnost apt_repository modul se uporablja za dodajanje PPA osomon / nodejs-10.19-goriščna (1).
Ne pozabite dodati ppa: pred imenom PPA, tj.e. ppa: osomon / nodejs-10.19-goriščna.
Večina pogodb PNE uporablja samopodpisana potrdila, zato jih Ansible ne more preveriti za vas in lahko zaženejo napako, ko zaženete knjigo iger.
Lahko nastavite validate_certs do Lažno da preskočite preverjanje veljavnosti potrdila za PPA, ki ga dodajate (2). To sem storil v primeru v tem članku.
OPOMBA: Lahko tudi nastavite validate_certs do Lažno da preskočite preverjanje veljavnosti certifikata pri dodajanju repozitorijev paketov drugih proizvajalcev.
Zaženite add_ppa.yaml playbook, kot sledi:
$ ansible-playbook playbooks / add_ppa.yaml
Kot lahko vidite, novo .seznam datoteka za PPA osomon / nodejs-10.19-goriščna je bil ustvarjen v / etc / apt / sources.seznam.d / imenik (1).
Z ogledom vsebine ppa_osomon_nodejs_10_19_focal_focal.seznam datoteko, lahko potrdim, da je bil PPA dodan (2).
$ drevo / etc / apt / sources.seznam.d /$ cat / etc / apt / sources.seznam.d / ppa_osomon_nodejs_10_19_focal_xenial.seznam
Odstranjevanje SNEE
PPA-je lahko odstranite na enak način, kot smo v prejšnjem razdelku tega članka odstranili repozitoriji paketov.
Samo kopirajte app_ppa.yaml playbook do remove_ppa.yaml, kot sledi:
$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml
Zdaj odprite remove_ppa.yaml playbook, kot sledi:
$ nano playbooks / remove_ppa.yaml
Nato spremenite vrstico stanje: prisotno do stanje: odsoten, kot je označeno na spodnjem posnetku zaslona.
Ko končate, shranite odstrani_ppa.yaml playbook s pritiskom na
Zaženite remove_ppa.yaml playbook, kot sledi:
$ ansible-playbook playbooks / add_ppa.yaml
Kot lahko vidite, ppa_osomon_nodejs_10_19_focal_focal.seznam datoteka za osomon / nodejs-10.19-goriščna PPA ni več na voljo v / etc / apt / sources.seznam.d / imenik. Torej, PPA osomon / nodejs-10.19-goriščna je bil odstranjen.
$ drevo / etc / apt / sources.seznam.d /
Spreminjanje kodnega imena PPA
Včasih PPA, ki ga poskušate dodati na gostitelju Ubuntu, ne podpira različice Ubuntuja, ki ga uporabljate. V tem primeru boste morali med dodajanjem PPA ročno določiti kodno ime različice Ubuntu.
Recimo, da uporabljate Ubuntu 20.04 s kodnim imenom žariščno in poskušate dodati PPA xyz, ampak PPA xyz podpira samo Ubuntu 16.04 LTS kodno ime xenial. Če poskušate dodati PPA xyz, dobili boste napako, saj PPA nima nobenega paketa za Ubuntu 20.04 kodno ime žariščno. Če pa določite Ubuntu 16.04 LTS kodno ime xenial med dodajanjem PPA ne boste prejeli nobene napake. Na ta način boste morda lahko namestili želeni paket iz PPA, tudi če ne podpira eksplicitne različice Ubuntuja, ki ga trenutno uporabljate.
Poglejmo primer.
Najprej kopirajte add_ppa.yaml datoteko playbook v change_ppa_codename.yaml, kot sledi:
$ cp -v playbooks / add_ppa.yaml playbooks / change_ppa_codename.yaml
Nato odprite change_ppa_codename.yaml datoteka, kot sledi:
$ nano playbooks / change_ppa_codename.yaml
Tukaj morate le dodati kodno ime možnost z želenim kodnim imenom Ubuntu (tj.e. kodno ime: xenial), kot je označeno na spodnjem posnetku zaslona.
Ko končate, shranite change_ppa_codename.yaml s pritiskom na
Zaženite change_ppa_codename.yaml playbook, kot sledi:
$ ansible-playbook playbooks / change_ppa_codename.yamlOPOMBA: Prikaže se napaka, ker PPA, ki sem ga tukaj dodal, podpira samo Ubuntu 20.04 LTS. To sporočilo lahko preprosto prezrete.
Kot lahko vidite, je bil dodan PPA in kodno ime Ubuntu xenial je v vrstici odlagališča paketov APT.
Zaključek
Ta članek vam je pokazal, kako upravljati (dodati / odstraniti) skladišča paketov Ubuntu in PPA-je s pomočjo programa Ansible.
Ansible apt_repository modul se uporablja za upravljanje skladišč paketov Ubuntu in PPA-jev. Ta članek je razložil vse pomembne možnosti apt_repository modul Ansible.
Če želite več informacij, preverite uradno stran dokumentacije o odgovornih osebah apt_repository.