[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]
Ein früher Schritt in unserem Bereitstellungsprozess für Red Hat Enterprise Linux (RHEL)-Systeme besteht darin, das System zu registrieren und ein entsprechendes Abonnement hinzuzufügen. Um diese beiden Schritte zu automatisieren, verwende ich eine Ansible-Rolle, die ich gerne mit Ihnen teilen möchte.
Meine Umgebung
In meiner Umgebung läuft RHEL hauptsächlich in verschiedenen Virtualisierungsclustern und gelegentlich auf dedizierten Servern (Bare Metal). Wir verwenden die folgenden Abonnements für Entwicklung und Produktion:
- Red Hat Developer Subscription
- Red Hat Enterprise Linux Server, Standard (physische oder virtuelle Knoten)
- Red Hat Enterprise Linux für virtuelle Rechenzentren, Standard
Das register-rhel-subscription
Rolle
Meine Rolle ist minimalistisch und hat folgende Struktur:
# tree roles/register-rhel-subscription
roles/register-rhel-subscription
|-- defaults
| `-- main.yml
|-- tasks
| `-- main.yml
tasks/main.yml
Das Ansible-Modul redhat_subscription
verwaltet die Registrierung und das Abonnement eines Systems mit dem subscription-manager
Befehl. Erstellen Sie zunächst Ihren Aktivierungsschlüssel im Kundenportal. Dieser Schlüssel ermöglicht die Registrierung ohne Eingabe von Benutzername und Passwort.
Ordnen Sie diese Taste dem Parameter activationkey
zu , etwa so:
activationkey: "{{ org_activationkey }}"
Im obigen Code der Inhalt der Variable org_activationkey
wird an den Parameter übergeben. Wie und wo diese Variable definiert wird, wird im nächsten Abschnitt erläutert.
Sie müssen auch die ID Ihrer Organisation zu org_id
hinzufügen . Sie finden diese Informationen wie folgt:
sudo subscription-manager identity
Deklariert dann den gewünschten Zielzustand durch:
state: present
In diesem Fall sollte das System registriert und ein Abonnement hinzugefügt werden. Wenn Sie diesen Parameter auf state: absent
ändern , wird das System entsprechend abgemeldet.
So sieht der Code aus, wenn alles zusammengefügt ist:
---
# tasks file for register-rhel-subscription
# Register System and add Subcription
- name: Register system and add subscription
redhat_subscription:
activationkey: "{{ org_activationkey }}"
org_id: 1234567
state: present
defaults/main.yml
In dieser Datei definieren wir den Standardwert für die Variable org_activationkey
:
---
# defaults file for register-rhel-subscription
org_activationkey: "my-datacenter-sub"
Der in dieser Datei angegebene Wert kann beispielsweise in host_vars
überschrieben werden und group_vars
(siehe Verwenden von Variablen). Sie können die Gruppenmitgliedschaften im Ansible-Inventar verwenden, um zu steuern, welches Abonnement einem Host oder einer Gruppe von Hosts zugewiesen wird.
Beispielplaybook
Nachdem die obigen Schritte abgeschlossen sind, können Sie nun das register-rhel-subscription
hinzufügen Rolle für Ihr Playbook:
---
- hosts: all
tasks:
- name: Group by OS
group_by:
key=os_{{ ansible_distribution }}
changed_when: False
- hosts: os_RedHat
roles: - register-rhel-subscription
Schlussfolgerung
Bisher macht diese Lösung einen robusten Eindruck, und das Schreiben dieses Textes dauerte viel länger als die eigentliche Aufgabe. Dies ist ein kleines und einfaches Beispiel dafür, wie Ansible Ihren Sysadmin-Tag etwas einfacher machen könnte.