cans.package-install
cans.package-install
Ein einfaches Ansible-Rollenskript, das eine gegebene Liste von Debian-Paketen
(.deb
) installiert.
Ziel dieses Skripts ist es, nicht viele komplizierte Funktionen anzubieten. Es ist ein minimalistisches, aber effizientes und wiederverwendbares Verfahren zur Paketinstallation. Es ist basically ein Verfahren, das, wenn eine Liste von Paketen gegeben ist, diese installiert.
Anforderungen
Dieses Skript hat keine besonderen Voraussetzungen. Es wird jedoch davon ausgegangen, dass die Zielserver Debian oder eine abgeleitete Version verwenden.
Rollenvariablen
Alle Variablen in diesem Skript sind mit dem Präfix pkginstall_
versehen.
Dieses Skript definiert auch Variablen für die interne Verwendung. Diese sind mit _pkginstall_
vorangestellt. Diese Variablen sollten nicht verwendet werden.
Eingangsvariablen
Damit dieses Skript eine Aufgabe ausführen kann, müssen Sie entweder oder beide
pkginstall_packages_absent
und pkginstall_packages_present
Variablen definieren.
pkginstall_packages
: VERALTET Verwenden Sie stattdessenpkginstall_packages_present
(Standard:[]
);pkginstall_packages_present
: eine Liste von Paketnamen, die auf dem Zielhost installiert sein sollen (Standard:[]
);pkginstall_packages_absent
: eine Liste von Paketnamen, die auf dem Zielhost nicht installiert sein sollen (Standard:[]
);
Standardwerte
pkginstall_apt_package_list_cache_directory
: Pfad zum Verzeichnis, das verfügbare Paketlisten und Paketinhaltslisten speichert. Diese Variable ist nur erforderlich, wenn Siepkginstall_cache_purge
auftrue
setzen (siehe unten). Es ist sehr unwahrscheinlich, dass Sie dies jemals ändern müssen. (Standard:"/var/lib/apt/lists"
)pkginstall_cache_ttl
: Gültigkeitsdauer des Paketcache in Sekunden (Standard: 3600)pkginstall_cache_update
: Ob der Paketcache vor der Installation von Paketen aktualisiert werden soll (Standard:true
)pkginstall_purge
: Beim Entfernen von Paketen auch die Konfigurationsdateien entfernen (Standard:true
);pkginstall_recommended
: Ob empfohlene Pakete zusammen mit den ausdrücklich zum Installieren aufgelisteten Paketen installiert werden sollen (Standard:false
).pkginstall_update_cache
: VERALTET verwenden Sie stattdessenpkginstall_cache_update
(Standard:true
)
Abhängigkeiten
Dieses Skript hat keine formalen Abhängigkeiten. Es erfordert jedoch, dass Sie
die Variable pkginstall_packages
überschreiben, um tatsächlich etwas auszuführen
(siehe Beispiel-Playbook unten).
Es kann auch interessant sein, die Rolle cans.package-source
in Verbindung mit dieser hier zu verwenden, um zusätzliche Paket-Repositories hinzuzufügen, die von APT bereits bekannt sind.
Beispiel-Playbooks
Angenommen, Sie haben zwei Rollen, first_role
und second_role
, von denen jede eine
Variable definiert, die eine Liste von Paketen zum Installieren enthält,
sagen wir first_role_packages
und second_role_packages
. Sie können dann
diese Rolle nutzen, indem Sie die Variable pkginstall_packages
mit der
Verkettung beider Listen zuweisen.
Danach rufen Sie einfach die Rolle auf.
- hosts: servers
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
- role: first_role
- role: second_role
Wenn Sie aus irgendeinem Grund nicht alle Pakete auf einmal installieren können
(z. B. weil first_role
etwas installiert oder konfiguriert, das erforderlich ist
vor der Installation der Pakete, die von second_role
benötigt werden):
- hosts: servers
roles:
- role: cans.package-install
pkginstall_packages: "{{ first_role_packages }}"
- role: first_role
- role: cans.package-install
pkginstall_packages: "{{ second_role_packages }}"
- role: second_role
Die obigen Beispiele gehen davon aus, dass Ansible sich mit den Zielservern
mit einer Identität verbindet, die genügend Berechtigungen hat, um Pakete zu
installieren. Andernfalls müssen Sie möglicherweise entweder oder beide
remote_user
und become
Schlüsselwörter verwenden:
- hosts: servers
remote_user: "privileged-user"
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
become: yes
- role: first_role
- role: second_role
Lizenz
GPLv2
Autorinformationen
Copyright © 2017-2018, Nicolas CANIART.
Simple Ansible Role that installs a given list of Debian packages (`.deb`).
ansible-galaxy install cans.package-install