„Ansible“ apt_repository modulis gali būti naudojamas lengvai pridėti ir pašalinti paketų saugyklas ir PPA jūsų „Ubuntu“ kompiuteriuose. Taip pat galite atnaujinti APT paketų saugyklos talpyklą naudodami „Ansible“ apt_repository modulis.
Šis straipsnis parodys, kaip valdyti „Ubuntu“ paketų saugyklas ir EEPS naudojant „Ansible“ apt_repository modulis. Taigi, pradėkime.
Būtinos sąlygos
Jei norite išbandyti šiame straipsnyje pateiktus pavyzdžius:
1) Savo kompiuteryje turite būti įdiegę „Ansible“.
2) Jūs turite turėti „Ubuntu“ pagrindinį kompiuterį, sukonfigūruotą „Ansible Automation“.
„LinuxHint“ yra daug straipsnių, skirtų „Ansible“ diegimui ir kompiuterių konfigūravimui „Ansible“ automatizavimui. Galite peržiūrėti šiuos straipsnius, jei jums reikia papildomos informacijos.
Projekto katalogo nustatymas
Prieš pradedant, bus gera idėja sukurti projekto katalogo struktūrą, kad viskas būtų šiek tiek labiau sutvarkyta.
Norėdami sukurti projekto katalogą apt-ppa-repo / ir visus reikalingus pakatalogius (dabartiniame darbo kataloge), vykdykite šią komandą:
$ mkdir -pv apt-ppa-repo / grojaraščiai
Sukūrę projekto katalogą, eikite į projekto katalogą taip:
$ cd apt-ppa-repo
Sukurti šeimininkai atsargų byla taip:
$ nano šeimininkai
Pridėti pagrindinio kompiuterio IP arba DNS pavadinimą (vm7.nodekitas.com ir vm8.nodekitas.com, mano atveju) jūsų „Ubuntu“ kompiuteriai inventoriaus faile.
Baigę išsaugokite failą paspausdami
Projekto kataloge sukurkite Ansible konfiguracijos failą taip:
$ nano galima.plg
Įveskite šias eilutes įmanoma.plg failas:
[pagal nutylėjimą]inventorius = šeimininkai
host_key_checking = Netiesa
Baigę išsaugokite failą paspausdami
Šiuo metu projekto katalogas turėtų atrodyti taip:
$ medis
Kaip matote, „Ansible“ kompiuteriai yra prieinami. Taigi galime pereiti prie kito šio straipsnio skirsnio.
$ ansible all -u ansible -m ping
Paketų saugyklų pridėjimas
Šiame skyriuje aš jums parodysiu, kaip pridėti paketų saugyklą „Ubuntu“ naudojant „Ansible“.
Pirmiausia sukurkite naują pjesę pavadinimu add_repo.yaml viduje konors grojaraščiai / katalogą:
„$ nano“ grojaraščiai / add_repo.yaml
Įveskite šias eilutes add_repo.yaml failas:
- šeimininkai: visivartotojas: ansible
tapti: Tiesa
užduotys:
- pavadinimas: Įsitikinkite, kad įgalinta visatos saugykla
apt_repository:
repo: deb http: // archyvas.ubuntu.com / ubuntu židinio visata
būsena: dabartis
„update_cache“: tiesa
Baigę išsaugokite failą paspausdami
Čia, atpirkimas variantas apt_repository modulis naudojamas nurodyti APT paketo saugyklos eilutę (mano atveju, deb http: // archyvas.ubuntu.com / ubuntu židinio visatapaketo saugyklos, kurią norite pridėti (mano atveju, „Ubuntu 20“).04 LTS pareigūnas visata saugykla).
Norėdami sužinoti daugiau apie APT paketų saugyklos eilutės formatą, perskaitykite „Ubuntu“ paketų saugyklos konfigūracijos failai straipsnio skyrius Kaip naudoti APT paketų tvarkyklę „Ubuntu 20“.04 LTS.
Kai čia pridedu naują paketų saugyklą, valstija yra pateikti.
The update_cache variantas gali būti arba Tiesa/taip arba Klaidinga/ne.
Jei update_cache yra nustatytas į Tiesa, Pridėjus paketų saugyklą, „Ansible“ atnaujins APT paketų saugyklos talpyklą.
Jei update_cache yra nustatytas į Klaidinga, „Ansible“ neatnaujins APT paketų saugyklos talpyklos.
Čia noriu, kad APT paketų saugykla būtų atnaujinta, kai tik bus pridėta nauja paketų saugykla. Taigi, aš nustatiau update_cache į Tiesa.
Dabar paleiskite add_repo.yaml pjesė:
$ ansible-playbook playbooks / add_repo.yamlKaip matote, pjesė sėkmingai paleista.
Norėdami patvirtinti, kad paketų saugykla (mano atveju - „Ubuntu 20“).04 LTS visata saugykla), vykdykite šią komandą:
$ grep --color -R 'http: // archyvas.ubuntu.com '/ etc / apt / sources.sąrašą/ etc / apt / sources.sąrašą.d / *.sąrašą
Kaip matote, „Windows“ programoje buvo sukurtas naujas failas / etc / apt / sources.sąrašą.d / katalogą (1) ir „Ubuntu 20“.04 LTS visata pridėta paketo saugykla (2).
Pagal numatytuosius nustatymus „Ansible“ automatiškai sugeneruos a .sąrašą failą / etc / apt / sources.sąrašą.d / katalogą, atsižvelgiant į APT saugyklos eilutę.
Jei norite pasirinkti konkretų failo pavadinimą (t.e. ubuntu-visata.sąrašą) savo saugyklai, galite nurodyti failo pavadinimą naudodami failo pavadinimas variantas apt_repository modulis jūsų add_repo.yaml grojaraštis, kaip parodyta toliau pateiktoje ekrano kopijoje.
Dabar paleiskite add_repo.yaml dar kartą pjesė.
$ ansible-playbook playbooks / add_repo.yaml
Kaip matote, failo vardas yra tas pats vardas, kurį aš nurodžiau.
$ grep --color -R 'http: // archyvas.ubuntu.com '/ etc / apt / sources.sąrašą/ etc / apt / sources.sąrašą.d / *.sąrašą
Pakuočių saugyklų pašalinimas
Šiame skyriuje parodysiu, kaip pašalinti esamą paketų saugyklą iš „Ubuntu“ kompiuterių naudojant „Ansible“.
Paketų saugyklos pašalinimo knygelė yra beveik tokia pati kaip pridėjus paketų saugyklą. Taigi, galite tiesiog nukopijuoti add_repo.yaml pjesės failą ir šiek tiek jį modifikuoti. Tai padaryti labai paprasta.
Pirmiausia nukopijuokite add_repo.yaml failą į remove_repo.yaml, taip:
$ cp -v grojaraščiai / add_repo.yaml playbooks / remove_repo.yaml
Redaguokite remove_repo.yaml pjesė:
„$ nano“ grojaraščiai / remove_repo.yaml
Keisti būsena: dabartis į būsena: nėra, kaip pažymėta toliau pateiktoje ekrano kopijoje. Tai bus vienintelis pakeitimas, kurį turite atlikti.
Baigę išsaugokite failą paspausdami
Paleiskite remove_repo.yaml pjesė:
$ ansible-playbook playbooks / remove_repo.yaml
Tada paleiskite šią komandą, kad patikrintumėte, ar paketų saugykla, kurią norite pašalinti, iš tikrųjų buvo pašalinta.
$ grep --color -R 'http: // archyvas.ubuntu.com '/ etc / apt / sources.sąrašą/ etc / apt / sources.sąrašą.d / *.sąrašą
Kaip matote, „Ubuntu 20“.04 LTS pareigūnas visata paketo saugykla, kurią pridėjau anksčiau, pašalinta.
PASTABA: Nepaisykite klaidos pranešimo. Ši žinutė tiesiog reiškia, kad / etc / apt / sources.sąrašą.d / katalogas tuščias. Jei norite pašalinti klaidos pranešimą, tiesiog pridėkite 2> / dev / null komandos pabaigoje taip. Įvedus šią komandą, klaida turėtų nebelikti.
$ grep --color -R 'http: // archyvas.ubuntu.com '/ etc / apt / sources.sąrašą/ etc / apt / sources.sąrašą.d / *.2 sąrašas> / dev / null
Pridedant EEPS
Šiame skyriuje aš jums parodysiu, kaip pridėti PPA jūsų „Ubuntu“ kompiuteriuose, naudojant „Ansible“.
Aš pridėsiu osomon / nodejs-10.19 židinio Mazgas.js 10.19 „Ubuntu 20“ PPA.04 LTS mano pavyzdyje.
Pirmiausia sukurkite naują pjesę add_ppa.yaml, taip:
„$ nano“ grojaraščiai / add_ppa.yaml
Įtraukite šias eilutes į savo add_ppa.yaml pjesė:
- šeimininkai: visivartotojas: ansible
tapti: Tiesa
užduotys:
- vardas: Pridėti mazgą.js 10.19 PPA
apt_repository:
atpirkimas: ppa: osomon / nodejs-10.19 židinio
būsena: dabartis
„update_cache“: tiesa
validate_certs: klaidinga
Kai baigsite, išsaugokite add_ppa.yaml pjesę paspausdami
Čia, atpirkimas variantas apt_repository modulis naudojamas PPA pridėti osomon / nodejs-10.19 židinio (1).
Būtinai pridėkite ppa: prieš PPA pavadinimą, t.e. ppa: osomonas / nodejs-10.19 židinio.
Daugelis APS naudoja pačių pasirašytus sertifikatus, todėl „Ansible“ negali jų patvirtinti už jus, todėl paleidus grojaraštį gali kilti klaidų.
Galite nustatyti validate_certs į Klaidinga praleisti pridedamo PPA sertifikato patvirtinimą (2). Tai aš padariau šio straipsnio pavyzdyje.
PASTABA: Taip pat galite nustatyti validate_certs į Klaidinga praleisti sertifikavimo patvirtinimą pridedant trečiųjų šalių paketų saugyklas.
Paleiskite add_ppa.yaml pjesė:
$ ansible-playbook playbooks / add_ppa.yaml
Kaip matote, naujas .sąrašą byla PPA osomon / nodejs-10.19 židinio buvo sukurtas / etc / apt / sources.sąrašą.d / katalogas (1).
Žiūrėdamas į ppa_osomon_nodejs_10_19_focal_focal.sąrašą failą, galiu patvirtinti, kad buvo pridėtas EEPS (2).
$ tree / etc / apt / sources.sąrašą.d /$ cat / etc / apt / sources.sąrašą.d / ppa_osomon_nodejs_10_19_focal_xenial.sąrašą
EEPS pašalinimas
EEPS galite pašalinti taip pat, kaip pašalinome paketų saugyklas ankstesniame šio straipsnio skyriuje.
Tiesiog nukopijuokite app_ppa.yaml pjesė į pašalinti_ppa.yaml, taip:
$ cp -v grojaraščiai / add_repo.yaml playbooks / remove_repo.yaml
Dabar atidarykite pašalinti_ppa.yaml pjesė:
„$ nano“ grojaraščiai / remove_ppa.yaml
Tada pakeiskite eilutę būsena: dabartis į būsena: nėra, kaip pažymėta toliau pateiktoje ekrano kopijoje.
Kai baigsite, išsaugokite pašalinti_ppa.yaml pjesę paspausdami
Paleiskite pašalinti_ppa.yaml pjesė:
$ ansible-playbook playbooks / add_ppa.yaml
Kaip matote, ppa_osomon_nodejs_10_19_focal_focal.sąrašą failas osomon / nodejs-10.19 židinio PPA daugiau nėra / etc / apt / sources.sąrašą.d / kataloge. Taigi, PPA osomon / nodejs-10.19 židinio buvo pašalintas.
$ tree / etc / apt / sources.sąrašą.d /
PPA kodinio pavadinimo keitimas
Kartais PPA, kurį bandote pridėti prie savo „Ubuntu“ pagrindinio kompiuterio, nepalaiko paleistos „Ubuntu“ versijos. Tokiu atveju turėsite rankiniu būdu nurodyti „Ubuntu“ versijos kodo pavadinimą pridedant PPA.
Tarkime, kad naudojate „Ubuntu 20“.04 su kodiniu pavadinimu židinio ir bandote pridėti PPA xyz, bet PPA xyz palaiko tik „Ubuntu 16“.04 LTS kodinis vardas ksenialinis. Jei bandysite pridėti PPA xyz, gausite klaidą, nes PPA neturi jokio „Ubuntu 20“ paketo.04 kodinis vardas židinio. Bet jei nurodysite „Ubuntu 16“.04 LTS kodinis vardas ksenialinis pridėdami PPA, klaidos negausite. Tokiu būdu galite įdiegti norimą paketą iš PPA, net jei jis nepalaiko aiškios šiuo metu naudojamos „Ubuntu“ versijos.
Pažiūrėkime pavyzdį.
Pirmiausia nukopijuokite add_ppa.yaml grojaraščio failą į change_ppa_codename.yaml, taip:
$ cp -v grojaraščiai / add_ppa.yaml playbooks / change_ppa_codename.yaml
Tada atidarykite change_ppa_codename.yaml rinkmeną taip:
„$ nano“ grojaraščiai / change_ppa_codename.yaml
Viskas, ką jums reikia padaryti, tai pridėti Kodinis pavadinimas parinktis su norimu „Ubuntu“ kodiniu pavadinimu (t.e. kodinis pavadinimas: xenial), kaip pažymėta toliau pateiktoje ekrano kopijoje.
Kai baigsite, išsaugokite change_ppa_codename.yaml failą paspausdami
Paleiskite change_ppa_codename.yaml pjesė:
$ ansible-playbook playbooks / change_ppa_codename.yamlPASTABA: Gaunu klaidą, nes čia pridėtas PPA palaiko tik „Ubuntu 20“.04 LTS. Galite tiesiog nepaisyti šio pranešimo.
Kaip matote, buvo pridėtas PPA ir „Ubuntu“ kodinis vardas ksenialinis yra APT paketų saugyklos eilutėje.
Išvada
Šis straipsnis parodė, kaip tvarkyti (pridėti / pašalinti) „Ubuntu“ paketų saugyklas ir EEPS naudojant „Ansible“.
„Ansible“ apt_repository modulis naudojamas valdyti „Ubuntu“ paketų saugyklas ir EEPS. Šiame straipsnyje paaiškintos visos svarbios apt_repository „Ansible“ modulis.
Norėdami gauti daugiau informacijos, patikrinkite apt_repository oficialaus Ansible dokumentacijos puslapį.