cans.package-source
cans.package-source
Einfache Rolle zum Hinzufügen und/oder Entfernen von Quellen für Verteilungspakete sowie deren zugehörige GPG-Schlüssel.
Jede hinzuzufügende oder zu entfernende Paketquelle muss wie folgt beschrieben werden:
- repo: "Name des Repositories" # erforderlich
codename: "<Distro Codename>" # optional, Standard: undefiniert
key_id: "<GPG Key ID>" # optional, Standard: undefiniert
key_server: "<Key Server URL>" # optional, Standard: undefiniert
key_url: "<Öffentliche Schlüssel Datei URL>" # optional, Standard: undefiniert
keyring: "<Pfad zum Keyring>" # optional, Standard: undefiniert
update_cache: <ja|nein> # optional, Standard: nein
Diese Rolle wird Quellen hinzufügen und anschließend entfernen. Da die Repositories in Listen angegeben sind, ist die Reihenfolge, in der sie hinzugefügt oder entfernt werden, deterministisch und wie in deinem Playbook angegeben.
Alle Werte mit einem undefinierten Standardwert werden einfach weggelassen, wenn sie nicht angegeben sind.
Das repo
ist der einzige zwingend erforderliche Wert und sollte eine gültige APT-Repository-Beschreibung sein.
Wenn du einen Schlüssel zusammen mit einer bestimmten Quelle installieren möchtest, musst du die key_id
angeben, um zu vermeiden, dass ein unerwünschter Schlüssel in APTs Keyring eingefügt wird. Dann wird entweder key_url
oder key_server
verpflichtend, damit der Schlüssel irgendwie abgerufen werden kann.
Änderungen des Standardwerts von update_cache
sind im Allgemeinen keine gute Idee, da sie dein Playbook stark verlangsamen. Und wenn du Paketquellen hinzufügst, ist es sehr wahrscheinlich, dass du sie kurz danach verwenden möchtest. Es wird empfohlen, den Cache dann zu aktualisieren und nicht, wenn du die Quelle hinzufügst. Bitte beachte, dass dies den Nachteil hat, dass deine neuen Repositories nicht validiert werden. Wenn du dennoch möchtest, dass diese Validierung während der Ausführung dieser Rolle erfolgt, verwende update_cache
, wie im
Beispiel-Playbook unten gezeigt.
Anforderungen
Dieses Paket benötigt die Module zur Verwaltung von Verteilungspaketquellen von Ansible:
- Für Debian-basierte Distributionen sieh dir die Module apt_repository und apt_key an;
Rollen-Variablen
Alle Variablen aus diesem Modul sind mit dem Präfix pkgsources
versehen.
pkgsource_present
: die Liste der Quellen, von denen du sicherstellen möchtest, dass sie verfügbar sind (Standard:[]
);pkgsource_absent
: die Liste der Quellen, von denen du sicherstellen möchtest, dass sie nicht verfügbar sind (Standard:[]
);
Veraltete Variablen
pkgsource_user
: diese Variable ist veraltet, da du dies beim Importieren der Rolle oder auf Spielebene definieren kannst. Die Variable wurde tatsächlich nicht verwendet (Standard:ansible_user_id
).
Abhängigkeiten
Diese Rolle hat keine externen Abhängigkeiten.
Beispiel-Playbook
In diesem Playbook fügen wir zwei neue Quellen zu APT hinzu und entfernen eine. Mit der zweiten hinzugefügten Quelle werden wir auch den GPG-Schlüssel des Repositories installieren. Schließlich, da diese Rolle zuerst Repositories hinzufügt und dann entfernt, zwingen wir beim letzten (und einzigen) entfernten Repository ein Cache-Update, um sicherzustellen, dass die Konfiguration tatsächlich gültig ist und APT alle Repositories und Paket-Signaturen überprüfen kann.
- hosts: servers
roles:
- role: "cans.package-source"
pkgsource_present:
# Stelle sicher, dass das Repository für Backport-Pakete der aktuellen Debian-Version verfügbar ist
- repo: "deb http://ftp.fr.debian.org/debian/ stable-backports main"
# Herokus Toolbelt-Repository (CLI-Tool)
- repo: "deb https://toolbelt.heroku.com/ubuntu/ ./"
# Diese zwei Zeilen stellen sicher, dass Herokus GPG-Schlüssel *vorher* installiert wird,
# bevor das Repository zur Quellliste hinzugefügt wird.
key_id: C927EBE00F1B0520
key_url: "https://toolbelt.herokuapp.com/apt/release.key"
# Die veralteten Quellen, die du entfernt haben möchtest.
pkgsource_absent:
- "deb http://ftp.fr.debian.org/debian/ wheezy main"
# Zwinge ein Cache-Update beim letzten hinzugefügten oder entfernten Repository,
# damit die neue Konfiguration validiert wird
update_cache: ja
Lizenz
Die Ansible-Rolle package-source ist freie Software: Du kannst sie unter den Bedingungen der GNU General Public License Version 2, die von der Free Software Foundation veröffentlicht wurde, weitergeben und/oder ändern.
package-sources wird in der Hoffnung verteilt, dass es nützlich ist, jedoch OHNE IRGENDEINE GARANTIE; nicht einmal die implizite Garantie der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.
Du solltest eine Kopie der GNU General Public License zusammen mit package-sources erhalten haben. Wenn nicht, siehe http://www.gnu.org/licenses/.
Autoreninformation
Copyright © 2017-2018, Nicolas CANIART.
Role to manage Distribution Package Sources and their Encryption Keys
ansible-galaxy install cans.package-source