Ansible

Verwalten Sie Ubuntu-Paket-Repositorys und PPAs mit Ansible

Verwalten Sie Ubuntu-Paket-Repositorys und PPAs mit Ansible
Das Hinzufügen und Entfernen von Paket-Repositorys und PPAs in Ubuntu auf Ihrem persönlichen System kann eine sehr einfache Aufgabe sein. Wenn Sie jedoch viele Ubuntu-Rechner haben, sagen wir 10 oder mehr, dann erweist sich das manuelle Hinzufügen und Entfernen von Paket-Repositorys und PPAs auf jedem System einzeln nacheinander als zeitaufwendig und ineffizient and.

Der Ansible apt_repository Modul kann verwendet werden, um Paket-Repositorys und PPAs auf Ihren Ubuntu-Hosts mit Leichtigkeit hinzuzufügen und zu entfernen remove. Sie können den Cache des APT-Paket-Repositorys auch mit Ansible . aktualisieren apt_repository Modul.

Dieser Artikel zeigt Ihnen, wie Sie Ubuntu-Paket-Repositorys und PPAs mit dem Ansible verwalten apt_repository Modul. Also lasst uns anfangen.

Voraussetzungen

Wenn Sie die in diesem Artikel enthaltenen Beispiele ausprobieren möchten:

1) Sie müssen Ansible auf Ihrem Computer installiert haben.
2) Sie müssen einen Ubuntu-Host für die Ansible-Automatisierung konfiguriert haben.

Es gibt viele Artikel auf LinuxHint, die sich mit der Installation von Ansible und der Konfiguration von Hosts für die Ansible-Automatisierung beschäftigen. Sie können diese Artikel lesen, wenn Sie zusätzliche Informationen benötigen.

Projektverzeichnis einrichten

Bevor wir beginnen, ist es eine gute Idee, eine Projektverzeichnisstruktur zu erstellen, um die Dinge ein wenig organisierter zu halten.

So erstellen Sie das Projektverzeichnis apt-ppa-repo/ und alle erforderlichen Unterverzeichnisse (in Ihrem aktuellen Arbeitsverzeichnis) führen Sie den folgenden Befehl aus:

$ mkdir -pv apt-ppa-repo/playbooks

Navigieren Sie nach dem Erstellen des Projektverzeichnisses wie folgt zum Projektverzeichnis:

$ cd apt-ppa-repo

Ein ... kreieren Gastgeber Inventardatei wie folgt:

$ Nano-Hosts

Fügen Sie die Host-IP oder den DNS-Namen hinzu (vm7.Knotendrachen.com und vm8.Knotendrachen.com, in meinem Fall) Ihrer Ubuntu-Hosts in der Inventardatei.

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

Erstellen Sie eine Ansible-Konfigurationsdatei im Projektverzeichnis wie folgt:

$ nano ansible.cfg

Geben Sie die folgenden Zeilen in die ein ansible.cfg Datei:

[Standardwerte]
Inventar           = Gastgeber
host_key_checking   = Falsch

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

An dieser Stelle sollte das Projektverzeichnis wie folgt aussehen:

$ Baum

Wie Sie sehen, sind die Ansible-Hosts zugänglich. Wir können also zum nächsten Abschnitt dieses Artikels übergehen.

$ ansible all -u ansible -m ping

Paket-Repositorys hinzufügen

In diesem Abschnitt zeige ich Ihnen, wie Sie mit Ansible ein Paket-Repository in Ubuntu hinzufügen.

Erstellen Sie zunächst ein neues Playbook namens add_repo.yaml in dem Spielbücher/ Verzeichnis wie folgt:

$ Nano-Playbooks/add_repo.yaml

Geben Sie die folgenden Zeilen in die ein add_repo.yaml Datei:

- Gastgeber: alle
Benutzer: ansible
wahr werden
Aufgaben:
- name: Stellen Sie sicher, dass das Universums-Repository aktiviert ist
apt_repository:
Repository: deb http://archive.ubuntu.com/ubuntu Fokales Universum
Zustand: vorhanden
update_cache: Richtig

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

Hier die repo Option der apt_repository -Modul wird verwendet, um die APT-Paket-Repository-Zeile anzugeben (in meinem Fall, deb http://archive.ubuntu.com/ubuntu Fokales Universum) des Paket-Repositorys, das Sie hinzufügen möchten (in meinem Fall das Ubuntu 20.04 LTS-Beamter Universum Repository).

Um mehr über das Format der APT-Paket-Repository-Zeile zu erfahren, lesen Sie die Konfigurationsdateien für das Ubuntu-Paket-Repository Abschnitt des Artikels So verwenden Sie den APT-Paket-Manager in Ubuntu 20.04 LTS.

Da ich hier ein neues Paket-Repository hinzufüge, Zustand ist vorhanden.

Das update_cache Option kann entweder sein Wahr/Ja oder Falsch/Nein.

Wenn die update_cache ist eingestellt auf Wahr, Ansible aktualisiert den APT-Paket-Repository-Cache, nachdem das Paket-Repository hinzugefügt wurde.

Wenn die update_cache ist eingestellt auf Falsch, Ansible aktualisiert den Cache des APT-Paket-Repository nicht not.

Hier möchte ich, dass das APT-Paket-Repository aktualisiert wird, sobald das neue Paket-Repository hinzugefügt wird. Also setze ich die update_cache zu Wahr.

Führen Sie nun die add_repo.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/add_repo.yaml

Wie Sie sehen, lief das Playbook erfolgreich.

Um zu bestätigen, dass das Paket-Repository (in meinem Fall das Ubuntu 20.04 LTS Universum Repository) hinzugefügt wird, führen Sie den folgenden Befehl aus:

$ grep --color -R 'http://archive.ubuntu.com' /etc/apt/sources.aufführen
/etc/apt/sources.aufführen.t/*.aufführen

Wie Sie sehen, wurde eine neue Datei im /etc/apt/sources.aufführen.d/ Verzeichnis (1) und das Ubuntu 20.04 LTS Universum Paket-Repository wurde hinzugefügt (2).

Standardmäßig generiert Ansible automatisch das a .aufführen Datei in der /etc/apt/sources.aufführen.d/ Verzeichnis, abhängig von der APT-Repository-Zeile.

Wenn Sie einen bestimmten Dateinamen wählen möchten (i.e. Ubuntu-Universum.aufführen) für Ihr Repository können Sie einen Dateinamen mit dem Dateiname Option der apt_repository Modul in Ihrem add_repo.yaml Playbook, wie im Screenshot unten gezeigt.

Führen Sie nun die add_repo.yaml wieder spielbuch.

$ ansible-playbook playbooks/add_repo.yaml

Wie Sie sehen können, ist der Dateiname derselbe Name, den ich angegeben habe.

$ grep --color -R 'http://archive.ubuntu.com' /etc/apt/sources.aufführen
/etc/apt/sources.aufführen.t/*.aufführen

Paket-Repositorys entfernen

In diesem Abschnitt zeige ich Ihnen, wie Sie mit Ansible ein vorhandenes Paket-Repository von Ihren Ubuntu-Hosts entfernen.

Das Playbook zum Entfernen eines Paket-Repositorys ist fast dasselbe wie das Hinzufügen eines Paket-Repositorys. Sie können also einfach die add_repo.yaml Playbook-Datei und ändern Sie sie ein wenig. Das geht ganz einfach.

Kopieren Sie zuerst die add_repo.yaml Datei zu remove_repo.yaml, wie folgt:

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

Bearbeiten Sie die remove_repo.yaml Spielbuch wie folgt:

$ Nano-Playbooks/remove_repo.yaml

Veränderung Zustand: vorhanden zu Zustand: abwesend, wie im Screenshot unten markiert. Dies ist die einzige Änderung, die Sie vornehmen müssen.

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

Führen Sie die remove_repo.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/remove_repo.yaml

Führen Sie als Nächstes den folgenden Befehl aus, um zu überprüfen, ob das Paket-Repository, das Sie entfernen möchten, tatsächlich entfernt wurde.

$ grep --color -R 'http://archive.ubuntu.com' /etc/apt/sources.aufführen
/etc/apt/sources.aufführen.t/*.aufführen

Wie Sie sehen, ist das Ubuntu 20.04 LTS-Beamter Universum Paket-Repository, das ich zuvor hinzugefügt habe, wurde entfernt.

HINWEIS: Ignoriere die Fehlermeldung. Diese Nachricht bedeutet nur, dass die /etc/apt/sources.aufführen.d/ Verzeichnis ist leer. Wenn Sie die Fehlermeldung entfernen möchten, fügen Sie einfach ein . hinzu 2>/dev/null am Ende des Befehls wie folgt. Der Fehler sollte nach Eingabe dieses Befehls behoben sein.

$ grep --color -R 'http://archive.ubuntu.com' /etc/apt/sources.aufführen
/etc/apt/sources.aufführen.t/*.list 2>/dev/null

PPAs hinzufügen

In diesem Abschnitt zeige ich Ihnen, wie Sie mit Ansible ein PPA auf Ihren Ubuntu-Hosts hinzufügen.

Ich werde das hinzufügen osomon/nodejs-10.19-fokal Knoten.js 10.19 PPA für Ubuntu 20.04 LTS in meinem Beispiel.

Erstellen Sie zuerst ein neues Playbook add_ppa.yaml, wie folgt:

$ Nano-Playbooks/add_ppa.yaml

Fügen Sie die folgenden Zeilen in Ihr . ein add_ppa.yaml Spielbuch:

- Gastgeber: alle
Benutzer: ansible
wahr werden
Aufgaben:
- Name: Knoten hinzufügen.js 10.19 PPA
apt_repository:
Repository: ppa:osomon/nodejs-10.19-fokal
Zustand: vorhanden
update_cache: Richtig
Validate_certs: Falsch

Wenn Sie fertig sind, speichern Sie die add_ppa.yaml Playbook durch Drücken von + X, gefolgt von Ja und .

Hier die repo Option der apt_repository Modul wird verwendet, um das PPA hinzuzufügen osomon/nodejs-10.19-fokal (1).

Unbedingt hinzufügen ppa: vor dem PPA-Namen, i.e. ppa:osomon/nodejs-10.19-fokal.

Die meisten PPAs verwenden selbstsignierte Zertifikate, sodass Ansible sie nicht für Sie verifizieren kann und beim Ausführen des Playbooks möglicherweise Fehler auftreten.

Sie können einstellen valid_certs zu Falsch um die Zertifikatsvalidierung für das PPA zu überspringen, das Sie hinzufügen (2). Das habe ich im Beispiel in diesem Artikel gemacht.

HINWEIS: Sie können auch einstellen valid_certs zu Falsch um die Zertifizierungsvalidierung beim Hinzufügen von Paket-Repositorys von Drittanbietern zu überspringen.

Führen Sie die add_ppa.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/add_ppa.yaml

Wie Sie sehen, ein neues .aufführen Datei für das PPA osomon/nodejs-10.19-fokal wurde im . erstellt /etc/apt/sources.aufführen.d/ Verzeichnis (1).

Mit Blick auf den Inhalt der ppa_osomon_nodejs_10_19_focal_focal.aufführen Datei kann ich bestätigen, dass das PPA hinzugefügt wurde (2).

$ tree /etc/apt/sources.aufführen.d/
$ cat /etc/apt/sources.aufführen.d/ppa_osomon_nodejs_10_19_focal_xenial.aufführen

Entfernen von PPAs

Sie können PPAs auf die gleiche Weise entfernen, wie wir Paket-Repositorys im vorherigen Abschnitt dieses Artikels entfernt haben.

Kopieren Sie einfach die app_ppa.yaml Spielbuch zu remove_ppa.yaml, wie folgt:

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

Öffnen Sie nun die remove_ppa.yaml Spielbuch wie folgt:

$ Nano-Playbooks/remove_ppa.yaml

Als nächstes ändern Sie die Zeile Zustand: vorhanden zu Zustand: abwesend, wie im Screenshot unten markiert.

Wenn Sie fertig sind, speichern Sie die remove_ppa.yaml Playbook durch Drücken von + X, gefolgt von Ja und .

Führen Sie die remove_ppa.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/add_ppa.yaml

Wie Sie sehen können, ist die ppa_osomon_nodejs_10_19_focal_focal.aufführen Datei für die osomon/nodejs-10.19-fokal PPA ist in der nicht mehr verfügbar /etc/apt/sources.aufführen.d/ Verzeichnis. Also, die PPA osomon/nodejs-10.19-fokal wurde entfernt.

$ tree /etc/apt/sources.aufführen.d/

Ändern des PPA-Codenamens

Manchmal unterstützt das PPA, das Sie auf Ihrem Ubuntu-Host hinzufügen möchten, die von Ihnen ausgeführte Ubuntu-Version nicht. In diesem Fall müssen Sie den Codenamen der Ubuntu-Version manuell angeben, während Sie das PPA hinzufügen.

Angenommen, Sie verwenden Ubuntu 20.04 mit Codename fokal und Sie versuchen, das PPA hinzuzufügen xyz, aber die PPA xyz unterstützt nur Ubuntu 16.04 LTS-Codename xenial. Wenn Sie versuchen, das PPA hinzuzufügen xyz, Sie erhalten eine Fehlermeldung, da das PPA kein Paket für Ubuntu 20 enthält.04 Codename Brennpunkt. Aber wenn Sie Ubuntu 16 . angeben.04 LTS-Codename xenial Beim Hinzufügen des PPA erhalten Sie keine Fehlermeldung. Möglicherweise können Sie auf diese Weise Ihr gewünschtes Paket aus dem PPA installieren, auch wenn es die explizite Version von Ubuntu, die Sie derzeit ausführen, nicht unterstützt.

Sehen wir uns ein Beispiel an.

Kopieren Sie zuerst die add_ppa.yaml Playbook-Datei zu change_ppa_codename.yaml, wie folgt:

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

Als nächstes öffnen Sie die change_ppa_codename.yaml Datei wie folgt:

$ Nano-Playbooks/change_ppa_codename.yaml

Hier müssen Sie nur noch das hinzufügen Code Name Option mit Ihrem gewünschten Ubuntu-Codenamen (i.e. Codename: xenial), wie im Screenshot unten markiert.

Wenn Sie fertig sind, speichern Sie die change_ppa_codename.yaml Datei durch Drücken von + X, gefolgt von Ja und .

Führen Sie die change_ppa_codename.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/change_ppa_codename.yaml

HINWEIS: Ich erhalte eine Fehlermeldung, weil das hier hinzugefügte PPA nur Ubuntu 20 unterstützt.04 LTS. Du kannst diese Nachricht einfach ignorieren.

Wie Sie sehen können, wurde das PPA hinzugefügt und der Ubuntu-Codename xenial befindet sich in der APT-Paket-Repository-Zeile.

Fazit

Dieser Artikel zeigte Ihnen, wie Sie Ubuntu-Paket-Repositorys und PPAs mit Ansible verwalten (hinzufügen/entfernen).

Der Ansible apt_repository -Modul wird verwendet, um Ubuntu-Paket-Repositorys und PPAs zu verwalten. In diesem Artikel wurden alle wichtigen Optionen des apt_repository Modul von Ansible.

Weitere Informationen finden Sie auf der offiziellen Ansible-Dokumentationsseite von apt_repository.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...