Paketmanager sind Werkzeuge, die es ermöglichen, Softwarepakete auf einem System zu installieren, zu aktualisieren und zu entfernen. Ansible nutzt diese Paketmanager, um Software auf den verwalteten Zielknoten zu installieren und zu verwalten. Je nach Linux-Distribution kommen verschiedene Paketmanager zum Einsatz:
APT:
sudo apt-get update
sudo apt-get install package_name
YUM:
sudo yum update
sudo yum install package_name
DNF:
sudo dnf update
sudo dnf install package_name
Zypper:
sudo zypper refresh
sudo zypper install package_name
Ansible stellt spezielle Module zur Verfügung, um Pakete auf Zielknoten zu verwalten. Die Wahl des Moduls hängt vom verwendeten Paketmanager auf dem Zielsystem ab.
APT-Modul:
- name: Installiere Apache mit APT
apt:
name: apache2
state: present
YUM-Modul:
- name: Installiere Apache mit YUM
yum:
name: httpd
state: present
DNF-Modul:
- name: Installiere Apache mit DNF
dnf:
name: httpd
state: present
Zypper-Modul:
- name: Installiere Apache mit Zypper
zypper:
name: apache2
state: present
In jedem dieser Beispiele sorgt der state: present
Parameter dafür, dass das angegebene Paket installiert ist. Falls es
bereits installiert ist, wird keine Aktion durchgeführt, was zur
Idempotenz beiträgt.
Um Softwarepakete zu installieren, muss das System wissen, aus welchen Quellen diese Pakete bezogen werden sollen. Diese Quellen werden in sogenannten Repositories definiert.
/etc/apt/sources.list
und in den Verzeichnissen unter
/etc/apt/sources.list.d/
definiert./etc/yum.repos.d/
definiert./etc/zypp/repos.d/
definiert.APT-Repository hinzufügen:
- name: Füge neues APT-Repository hinzu
apt_repository:
repo: 'ppa:nginx/stable'
YUM-Repository hinzufügen:
- name: Füge neues YUM-Repository hinzu
yum_repository:
name: epel
description: 'Extra Packages for Enterprise Linux'
baseurl: 'https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch'
Diese Beispiele zeigen, wie einfach es ist, mit Ansible neue Repositories hinzuzufügen, um den Softwarebestand eines Systems zu erweitern.