Lehetséges

Az Ubuntu csomagtárak és PPA-k kezelése az Ansible használatával

Az Ubuntu csomagtárak és PPA-k kezelése az Ansible használatával
A személyes adattárak és a PPA-k hozzáadása és eltávolítása az Ubuntuban nagyon egyszerű feladat lehet. Ha azonban sok Ubuntu géped van, mondjuk 10 vagy annál több, akkor a csomagok és a PPA-k manuális hozzáadása és eltávolítása minden egyes rendszerben időigényes és nem hatékony.

Az Ansible apt_repository A modul segítségével könnyedén hozzáadhat és eltávolíthat csomagokat és PPA-kat az Ubuntu gazdagépeken. Az APT csomagtárház gyorsítótárát az Ansible használatával is frissítheti apt_repository modul.

Ez a cikk bemutatja, hogyan lehet kezelni az Ubuntu csomagtárakat és a PPA-kat az Ansible használatával apt_repository modul. Tehát kezdjük.

Előfeltételek

Ha ki szeretné próbálni a cikkben szereplő példákat:

1) A számítógépére telepítve kell lennie az Ansible programnak.
2) Az Ansible automatizáláshoz konfigurálnia kell egy Ubuntu gazdagépet.

A LinuxHint-en számos cikk foglalkozik az Ansible telepítésével és a gazdagépek konfigurálásával az Ansible automatizáláshoz. Megtekintheti ezeket a cikkeket, ha további információkra van szüksége.

Projektkönyvtár beállítása

Mielőtt elkezdenénk, jó ötlet lesz létrehozni egy projekt könyvtárstruktúrát, csak azért, hogy a dolgok egy kicsit rendezettebbek maradjanak.

A projekt könyvtár létrehozása apt-ppa-repo / és az összes szükséges alkönyvtárat (az aktuális munkakönyvtárban), futtassa a következő parancsot:

$ mkdir -pv apt-ppa-repo / playbooks

A projektkönyvtár létrehozása után lépjen a projektkönyvtárba az alábbiak szerint:

$ cd apt-ppa-repo

Hozzon létre egy otthont ad leltárállomány, az alábbiak szerint:

$ nano házigazdák

Adja hozzá a gazdagép IP vagy DNS nevét (vm7.nodekite.com és vm8.nodekite.com, az én esetemben) az Ubuntu hosztok a készletfájlban.

Ha végzett, mentse a fájlt a gombbal + x, utána Y és .

Hozzon létre egy Ansible konfigurációs fájlt a projektkönyvtárban, az alábbiak szerint:

$ nano ansible.vö

Írja be a következő sorokat a lehetséges.vö fájl:

[alapértelmezések]
leltár = hosztok
host_key_checking = Hamis

Ha végzett, mentse a fájlt a gombbal + x, utána Y és .

Ezen a ponton a projektkönyvtárnak a következőképpen kell kinéznie:

$ fa

Amint láthatja, az Ansible hosztok hozzáférhetők. Tehát folytathatjuk a cikk következő szakaszát.

$ ansible all -u ansible -m ping

Csomagtárak hozzáadása

Ebben a szakaszban megmutatom, hogyan adhat hozzá csomagtárat az Ubuntuban az Ansible segítségével.

Először hozzon létre egy új játékkönyvet add_repo.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:

$ nano playbooks / add_repo.yaml

Írja be a következő sorokat a add_repo.yaml fájl:

- házigazdák: mind
felhasználó: ansible
vált: Igaz
feladatok:
- név: Győződjön meg arról, hogy az univerzum adattár engedélyezve van
apt_repository:
repo: deb http: // archívum.ubuntu.com / ubuntu fókuszuniverzum
állapot: jelen
update_cache: Igaz

Ha végzett, mentse a fájlt a gombbal + x, utána Y és .

Itt a repo a apt_repository modult használjuk az APT csomag lerakat sorának megadására (esetemben, deb http: // archívum.ubuntu.com / ubuntu fókuszuniverzum) a hozzáadni kívánt csomagtárból (esetemben az Ubuntu 20.04 LTS tisztviselő világegyetem adattár).

Ha többet szeretne megtudni az APT csomag lerakat sorának formátumáról, olvassa el a Ubuntu Package Repository konfigurációs fájlok Az APT Package Manager használata az Ubuntu 20-ban című szakasz.04 LTS.

Mivel új csomagtárat adok ide, a állapot van ajándék.

A update_cache opció lehet Igaz/Igen vagy Hamis/nem.

Ha a update_cache értékre van állítva Igaz, Az Ansible a csomagtár hozzáadása után frissíti az APT csomagtárház gyorsítótárát.

Ha a update_cache értékre van állítva Hamis, Az Ansible nem frissíti az APT csomag-tárház gyorsítótárát.

Itt azt akarom, hogy az APT csomagtár frissüljön, amint az új csomagtárat hozzáadják. Szóval, beállítottam a update_cache nak nek Igaz.

Most futtassa a add_repo.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / add_repo.yaml

Mint látható, a játékkönyv sikeresen futott.

Annak megerősítésére, hogy a csomagtár (esetemben az Ubuntu 20.04 LTS világegyetem repository) hozzáadásával futtassa a következő parancsot:

$ grep --color -R 'http: // archívum.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.d / *.lista

Amint láthatja, egy új fájl jött létre a / etc / apt / sources.lista.d / könyvtár (1) és az Ubuntu 20.04 LTS világegyetem csomagtár került hozzá (2).

Alapértelmezés szerint az Ansible automatikusan létrehozza a .lista fájl a / etc / apt / sources.lista.d / könyvtár, az APT repository sorától függően.

Ha egy adott fájlnevet szeretne választani (i.e. ubuntu-univerzum.lista) a tárházához megadhat egy fájlnevet a fájl név a apt_repository modul a add_repo.yaml playbook, az alábbi képernyőképen látható módon.

Most futtassa a add_repo.yaml ismét játékkönyv.

$ ansible-playbook playbooks / add_repo.yaml

Amint láthatja, a fájlnév megegyezik az általam megadott névvel.

$ grep --color -R 'http: // archívum.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.d / *.lista

Csomagtárak eltávolítása

Ebben a részben bemutatom, hogyan lehet eltávolítani egy meglévő csomagtárat az Ubuntu hosztokról az Ansible használatával.

A csomagtár eltávolítására szolgáló playbook szinte megegyezik a csomagtár hozzáadásával. Szóval, csak másolhatja a add_repo.yaml playbook fájlt, és módosítsa egy kicsit. Ezt nagyon egyszerű megtenni.

Először másolja a add_repo.yaml fájlba remove_repo.yaml, alábbiak szerint:

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

Szerkessze a remove_repo.yaml játékkönyv, az alábbiak szerint:

$ nano playbooks / remove_repo.yaml

változás állapot: jelen nak nek állapot: hiányzik, az alábbi képernyőképen jelölt módon. Ez lesz az egyetlen változtatás, amelyet végre kell hajtania.

Ha végzett, mentse a fájlt a gombbal + x, utána Y és .

Futtassa a remove_repo.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / remove_repo.yaml

Ezután futtassa a következő parancsot annak ellenőrzésére, hogy az eltávolítani kívánt csomagtár valóban el lett-e távolítva.

$ grep --color -R 'http: // archívum.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.d / *.lista

Mint láthatja, az Ubuntu 20.04 LTS tisztviselő világegyetem A korábban hozzáadott csomagtárat eltávolítottuk.

JEGYZET: Hagyja figyelmen kívül a hibaüzenetet. Ez az üzenet csak azt jelenti, hogy a / etc / apt / sources.lista.d / a könyvtár üres. Ha el akarja távolítani a hibaüzenetet, egyszerűen adjon hozzá egy a-t 2> / dev / null a parancs végén, az alábbiak szerint. A hibának el kell tűnnie a parancs végrehajtása után.

$ grep --color -R 'http: // archívum.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.d / *.2. lista> / dev / null

HTM-ek hozzáadása

Ebben a részben megmutatom, hogyan lehet PPA-t hozzáadni az Ubuntu gazdagépeihez az Ansible használatával.

Hozzáadom a osomon / nodejs-10.19-fokális Csomópont.js 10.19 PPA az Ubuntu 20-hoz.04 LTS az én példámban.

Először hozzon létre egy új játékkönyvet add_ppa.yaml, alábbiak szerint:

$ nano playbooks / add_ppa.yaml

Adja hozzá a következő sorokat a add_ppa.yaml játékkönyv:

- házigazdák: mind
felhasználó: ansible
vált: Igaz
feladatok:
- név: Csomópont hozzáadása.js 10.19 PPA
apt_repository:
repo: ppa: osomon / nodejs-10.19-fokális
állapot: jelen
update_cache: Igaz
validate_certs: Hamis

Ha elkészült, mentse a add_ppa.yaml playbook megnyomásával + x, utána Y és .

Itt a repo a apt_repository modul a PPA hozzáadására szolgál osomon / nodejs-10.19-fokális (1).

Feltétlenül adjon hozzá ppa: a PPA név előtt, i.e. ppa: osomon / nodejs-10.19-fokális.

A legtöbb PPA önaláírt tanúsítványt használ, így az Ansible nem tudja ellenőrizni őket az Ön számára, és hibát okozhatnak a játékkönyv futtatásakor.

Beállíthatja validate_certs nak nek Hamis a hozzáadandó PPA tanúsítvány-hitelesítésének kihagyása (2). Ezt tettem a cikk példájában.

JEGYZET: Beállíthatja azt is validate_certs nak nek Hamis a tanúsítás érvényesítésének kihagyása harmadik féltől származó csomagtárak hozzáadásakor.

Futtassa a add_ppa.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / add_ppa.yaml

Mint láthatja, egy új .lista fájl a PPA-hoz osomon / nodejs-10.19-fokális létrejött a / etc / apt / sources.lista.d / könyvtár (1).

Azáltal, hogy megnézzük a ppa_osomon_nodejs_10_19_focal_focal.lista fájlt, meg tudom erősíteni, hogy a PPA-t hozzáadták (2).

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

A HTM-ek eltávolítása

A HTM-eket ugyanúgy távolíthatja el, mint a cikk korábbi szakaszában a csomagtárakat.

Csak másolja a app_ppa.yaml játékkönyv a remove_ppa.yaml, alábbiak szerint:

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

Nyissa meg a remove_ppa.yaml játékkönyv, az alábbiak szerint:

$ nano playbooks / remove_ppa.yaml

Ezután változtassa meg a sort állapot: jelen nak nek állapot: hiányzik, az alábbi képernyőképen jelölt módon.

Ha elkészült, mentse a remove_ppa.yaml playbook megnyomásával + x, utána Y és .

Futtassa a remove_ppa.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / add_ppa.yaml

Mint láthatja, a ppa_osomon_nodejs_10_19_focal_focal.lista fájl a osomon / nodejs-10.19-fokális A PPA már nem érhető el a / etc / apt / sources.lista.d / Könyvtár. Tehát, a PPA osomon / nodejs-10.19-fokális el lett távolítva.

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

A PPA kódnév módosítása

Néha az a PPA, amelyet megpróbál hozzáadni az Ubuntu gazdagépre, nem támogatja az Ön által futtatott Ubuntu verziót. Ebben az esetben a PPA hozzáadása közben manuálisan kell megadnia az Ubuntu verzió kódnevét.

Tegyük fel, hogy az Ubuntu 20-at futtatja.04 kódnévvel fokális és megpróbálja hozzáadni a PPA-t xyz, hanem a PPA xyz csak az Ubuntu 16-ot támogatja.04 LTS kódnév xenial. Ha megpróbálja hozzáadni a PPA-t xyz, hibát fog kapni, mivel a PPA-nak nincs csomagja az Ubuntu 20-hoz.04 kódnév fokális. De ha megadja az Ubuntu 16-ot.04 LTS kódnév xenial a PPA hozzáadása közben nem kap hibát. Lehetséges, hogy így telepítheti a kívánt csomagot a PPA-ból, még akkor is, ha az nem támogatja az Ön által jelenleg futtatott Ubuntu kifejezett verzióját.

Lássunk egy példát.

Először másolja a add_ppa.yaml playbook file to change_ppa_codename.yaml, alábbiak szerint:

$ cp -v playbooks / add_ppa.yaml playbooks / change_ppa_codename.yaml

Ezután nyissa meg a change_ppa_codename.yaml fájl, az alábbiak szerint:

$ nano playbooks / change_ppa_codename.yaml

Itt csak annyit kell tennie, hogy hozzáadja a kód név opció a kívánt Ubuntu kódnévvel (i.e. kódnév: xenial), az alábbi képernyőképen látható módon.

Ha elkészült, mentse a change_ppa_codename.yaml fájl megnyomásával + x, utána Y és .

Futtassa a change_ppa_codename.yaml játékkönyv, az alábbiak szerint:

$ ansible-playbook playbooks / change_ppa_codename.yaml

JEGYZET: Hibát kapok, mert az itt hozzáadott PPA csak az Ubuntu 20-at támogatja.04 LTS. Csak figyelmen kívül hagyhatja ezt az üzenetet.

Mint láthatja, a PPA és az Ubuntu kódnév hozzá lett adva xenial az APT csomagtárház sorában található.

Következtetés

Ez a cikk bemutatta, hogyan kezelheti (hozzáadhatja / eltávolíthatja) az Ubuntu csomag-adattárakat és a PPA-kat az Ansible használatával.

Az Ansible apt_repository modult használnak az Ubuntu csomagtárak és PPA-k kezelésére. Ez a cikk elmagyarázta a apt_repository modulja az Ansible.

További információ az apt_repository hivatalos Ansible dokumentációs oldalán található.

Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...
A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...
A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...