Verwalten Sie Ubuntu -Paket -Repositories und PPAs mit Ansible

Verwalten Sie Ubuntu -Paket -Repositories und PPAs mit Ansible
Das Hinzufügen und Entfernen von Paket -Repositories und PPAs in Ubuntu in Ihrem persönlichen System kann eine sehr einfache Aufgabe sein. Wenn Sie jedoch 10 oder mehr Ubuntu-Maschinen haben, werden Paket-Repositories und PPAs für jedes System ein-zu-eins manuell addiert und entfernen.

Der Ansible Apt_repository Das Modul kann verwendet werden, um Paketpakete und PPAs mit Leichtigkeit auf Ihren Ubuntu -Hosts hinzuzufügen und zu entfernen. Sie können den APT -Paket -Repository -Cache auch mit dem Ansible aktualisieren Apt_repository Modul.

In diesem Artikel wird angezeigt, wie Sie Ubuntu -Paket -Repositories und PPAs mit dem Ansible verwalten können 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 unter LinuxHint, die der Installation von Ansible und Konfigurieren von Hosts für Ansible Automation gewidmet sind. Sie können diese Artikel überprüfen, wenn Sie zusätzliche Informationen benötigen.

Einrichten des Projektverzeichnisses

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

Um das Projektverzeichnis zu erstellen APT-PPA-Repo/ und alle erforderlichen Unterverzeichnisse (in Ihrem aktuellen Arbeitsverzeichnis) führen Sie den folgenden Befehl aus:

$ mkdir -pv APT-PPA-Repo/Playbooks

Sobald das Projektverzeichnis erstellt wurde, navigieren Sie wie folgt zum Projektverzeichnis:

$ CD APT-PPA-Repo

Ein ... kreieren Gastgeber Inventardatei wie folgt:

$ nano Gastgeber

Fügen Sie den Host -IP- oder DNS -Namen hinzu (VM7.Nodekite.com Und VM8.Nodekite.com, in meinem Fall) Ihrer Ubuntu -Hosts in der Inventardatei.

Sobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .

Erstellen Sie eine ansible Konfigurationsdatei im Projektverzeichnis wie folgt:

$ nano ansible.CFG

Geben Sie die folgenden Zeilen in die Ansible.CFG Datei:

[Standardeinstellungen]
Inventory = Hosts
host_key_checking = false

Sobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .

Zu diesem Zeitpunkt sollte das Projektverzeichnis wie Folgendes aussehen:

$ tree

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

$ ANSIBLE ALL -U ANSIBLE -M PING

Hinzufügen von Paket -Repositories

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

Erstellen Sie zunächst ein neues Spielbuch namens namens add_repo.Yaml im Playbooks/ Verzeichnis wie folgt:

$ nano playbooks/add_repo.Yaml

Geben Sie die folgenden Zeilen in die add_repo.Yaml Datei:

- Hosts: Alles
Benutzer: Ansible
wahr werden
Aufgaben:
- Name: Stellen Sie sicher, dass das Universum -Repository aktiviert ist
Apt_repository:
Repo: Deb http: // Archiv.Ubuntu.Com/Ubuntu -Fokus Universum
Zustand: Gegenwart
update_cache: true

Sobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .

Hier das Repo Option der Apt_repository Das Modul wird verwendet, um die APT -Paket -Repository -Zeile (in meinem Fall, Deb http: // Archiv.Ubuntu.Com/Ubuntu -Fokus Universum) des Paket -Repositorys, das Sie hinzufügen möchten (in meinem Fall das Ubuntu 20.04 LTS Offiziell Universum Repository).

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

Da ich hier ein neues Paket -Repository hinzufüge, die Zustand Ist gegenwärtig.

Der update_cache Option kann entweder sein WAHR/Ja oder FALSCH/NEIN.

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

Wenn der update_cache ist eingestellt auf FALSCH, Ansible aktualisiert den APT -Paket -Repository -Cache nicht.

Hier möchte ich, dass das APT -Paket -Repository aktualisiert wird, sobald das neue Paket -Repository hinzugefügt wurde. Also stelle ich das ein update_cache Zu WAHR.

Jetzt leiten Sie die add_repo.Yaml Spielbuch wie folgt:

$ Ansible-Playbook Playbooks/add_repo.Yaml

Wie Sie sehen können, lief das Spielbuch erfolgreich.

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

$ grep - -color -r 'http: // Archiv.Ubuntu.com '/etc/apt/Quellen.Liste
/etc/Apt/Quellen.Liste.D/*.Liste

Wie Sie sehen können, wurde eine neue Datei in der erstellt /etc/Apt/Quellen.Liste.D/ Verzeichnis (1) und der Ubuntu 20.04 LTS Universum Paketrepository wurde hinzugefügt (2).

Standardmäßig generiert Ansible das a automatisch .Liste Datei in der /etc/Apt/Quellen.Liste.D/ Verzeichnis, abhängig von der APT -Repository -Linie.

Wenn Sie einen bestimmten Dateinamen auswählen möchten (i.e. Ubuntu-Universität.Liste) Für Ihr Repository können Sie einen Dateinamen mit dem angeben Dateinamen Option der Apt_repository Modul in Ihrem add_repo.Yaml Playbook, wie im Screenshot unten gezeigt.

Jetzt leiten Sie die add_repo.Yaml Spielbuch wieder.

$ Ansible-Playbook Playbooks/add_repo.Yaml

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

$ grep - -color -r 'http: // Archiv.Ubuntu.com '/etc/apt/Quellen.Liste
/etc/Apt/Quellen.Liste.D/*.Liste

Entfernen von Paketrepositories

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

Das Spielbuch zum Entfernen eines Paket -Repositorys entspricht fast dem Hinzufügen eines Paket -Repositorys. Sie können also einfach das kopieren add_repo.Yaml Playbook -Datei und ändern Sie sie ein wenig. Das ist sehr einfach zu tun.

Kopieren Sie zuerst die add_repo.Yaml Datei an entfernen_repo.Yaml, folgendermaßen:

$ cp -v playbooks/add_repo.Yaml -Playbooks/Remove_Repo.Yaml

Bearbeiten die entfernen_repo.Yaml Spielbuch wie folgt:

$ nano playbooks/remove_repo.Yaml

Ändern Zustand: Gegenwart Zu Zustand: abwesend, wie im Screenshot unten markiert. Dies ist die einzige Änderung, die Sie vornehmen müssen.

Sobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .

Leiten Sie die entfernen_repo.Yaml Spielbuch wie folgt:

$ Ansible-Playbook-Playbooks/Reme_Repo.Yaml

Führen Sie als nächstes den folgenden Befehl aus, um zu überprüfen.

$ grep - -color -r 'http: // Archiv.Ubuntu.com '/etc/apt/Quellen.Liste
/etc/Apt/Quellen.Liste.D/*.Liste

Wie Sie sehen können, der Ubuntu 20.04 LTS Offiziell Universum Paket -Repository, das ich zuvor hinzugefügt habe, wurde entfernt.

NOTIZ: Ignorieren Sie die Fehlermeldung. Diese Nachricht bedeutet nur, dass die /etc/Apt/Quellen.Liste.D/ Verzeichnis ist leer. Wenn Sie die Fehlermeldung entfernen möchten, fügen Sie einfach a hinzu 2>/dev/null Am Ende des Befehls wie folgt. Der Fehler sollte verschwunden sein, nachdem er diesen Befehl verankert sein sollte.

$ grep - -color -r 'http: // Archiv.Ubuntu.com '/etc/apt/Quellen.Liste
/etc/Apt/Quellen.Liste.D/*.Liste 2>/dev/null

Hinzufügen von PPAs

In diesem Abschnitt werde ich Ihnen zeigen.

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 zunächst ein neues Spielbuch add_ppa.Yaml, folgendermaßen:

$ nano playbooks/add_ppa.Yaml

Fügen Sie die folgenden Zeilen in Ihre hinzu add_ppa.Yaml Spielbuch:

- Hosts: Alles
Benutzer: Ansible
wahr werden
Aufgaben:
- Name: Knoten hinzufügen.JS 10.19 PPA
Apt_repository:
Repo: PPA: Osomon/Nodejs-10.19-Fokal
Zustand: Gegenwart
update_cache: true
validate_certs: false

Sobald Sie fertig sind, speichern Sie die add_ppa.Yaml Spielbuch durch Drücken + X, gefolgt von Y Und .

Hier das Repo Option der Apt_repository Modul wird verwendet, um das PPA hinzuzufügen Osomon/NodeJS-10.19-Fokal (1).

Achten Sie darauf, dass Sie hinzufügen PPA: Vor dem PPA -Namen, ich.e. PPA: Osomon/Nodejs-10.19-Fokal.

Die meisten PPAs verwenden selbstsignierte Zertifikate, sodass Ansible sie nicht für Sie verifizieren kann, und sie können beim Ausführen des Spielbuchs ein Fehler erleiden, wenn Sie das Spielbuch ausführen.

Sie können festlegen validate_certs Zu FALSCH So überspringen Sie die Validierung der Zertifikat für die von Ihnen hinzugefügte PPA (2). Dies habe ich in dem Beispiel in diesem Artikel getan.

NOTIZ: Sie können auch einstellen validate_certs Zu FALSCH Um die Validierung der Zertifizierung beim Hinzufügen von Paket-Repositories von Drittanbietern zu überspringen.

Leiten Sie die add_ppa.Yaml Spielbuch wie folgt:

$ Ansible-Playbook Playbooks/add_ppa.Yaml

Wie Sie sehen können, eine neue .Liste Datei für die PPA Osomon/NodeJS-10.19-Fokal wurde in der erstellt /etc/Apt/Quellen.Liste.D/ Verzeichnis (1).

Durch Betrachtung des Inhalts der ppa_osomon_nodejs_10_19_focal_focal.Liste Datei, ich kann bestätigen, dass die PPA hinzugefügt wurde (2).

$ Baum/etc/apt/Quellen.Liste.D/
$ cat/etc/apt/Quellen.Liste.d/ppa_osomon_nodejs_10_19_focal_xenial.Liste

PPAs entfernen

Sie können PPA.

Kopieren Sie einfach die app_ppa.Yaml Spielbuch an remove_ppa.Yaml, folgendermaßen:

$ cp -v playbooks/add_repo.Yaml -Playbooks/Remove_Repo.Yaml

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

$ nano playbooks/reme_ppa.Yaml

Als nächstes ändern Sie die Linie Zustand: Gegenwart Zu Zustand: abwesend, wie im Screenshot unten markiert.

Sobald Sie fertig sind, speichern Sie die remove_ppa.Yaml Spielbuch durch Drücken + X, gefolgt von Y Und .

Leiten Sie die remove_ppa.Yaml Spielbuch wie folgt:

$ Ansible-Playbook Playbooks/add_ppa.Yaml

Wie Sie sehen können, die ppa_osomon_nodejs_10_19_focal_focal.Liste Datei für die Osomon/NodeJS-10.19-Fokal PPA ist in der nicht mehr erhältlich /etc/Apt/Quellen.Liste.D/ Verzeichnis. Also die PPA Osomon/NodeJS-10.19-Fokal wurde entfernt.

$ Baum/etc/apt/Quellen.Liste.D/

PPA -Codename ändern

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

Angenommen, Sie laufen 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 einen Fehler, da die PPA kein Paket für Ubuntu 20 hat.04 Codename fokal. Aber wenn Sie den Ubuntu 16 angeben.04 LTS Codename Xenial Beim Hinzufügen des PPA erhalten Sie keinen Fehler. Möglicherweise können Sie Ihr gewünschtes Paket auf diese Weise aus dem PPA installieren, auch wenn es die explizite Version von Ubuntu, die Sie derzeit derzeit ausführen, nicht unterstützt.

Lassen Sie uns ein Beispiel sehen.

Kopieren Sie zuerst die add_ppa.Yaml Playbook -Datei zu Change_ppa_codename.Yaml, folgendermaßen:

$ 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 das hinzufügen Code Name Option mit Ihrem gewünschten Ubuntu -Codenamen (ich.e. Codename: Xenial), wie im Screenshot unten markiert.

Sobald Sie fertig sind, speichern Sie die Change_ppa_codename.Yaml Datei durch Drücken + X, gefolgt von Y Und .

Leiten Sie die Change_ppa_codename.Yaml Spielbuch wie folgt:

$ Ansible-Playbook Playbooks/Change_ppa_codename.Yaml

NOTIZ: Ich bekomme einen Fehler, weil die PPA, die ich hier hinzugefügt habe, nur Ubuntu 20 unterstützt.04 LTS. Sie können diese Nachricht einfach ignorieren.

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

Abschluss

In diesem Artikel wurden Ubuntu -Paket -Repositories und PPAs mit Ansible verwalten (hinzufügen/entfernen).

Der Ansible Apt_repository Das Modul wird verwendet, um Ubuntu -Paket -Repositories und PPAs zu verwalten. Dieser Artikel erläuterte alle wichtigen Optionen der Apt_repository Modul von Ansible.

Weitere Informationen finden Sie auf der Seite APT_Repository Ansible Dokumentation.