clusterapps.rhbase
Ansible-Rolle rhbase
Ansible-Rolle für die grundlegende Einrichtung eines Servers mit einer RedHat-basierten Linux-Distribution (CentOS, Fedora, RHEL, ...). Die Aufgaben dieser Rolle sind:
- Repositories verwalten,
- Paketinstallation und -entfernung verwalten,
- Angegebene Dienste ein- oder ausschalten,
- Benutzer und Gruppen erstellen,
- Ein Administratorkonto mit einem SSH-Schlüssel einrichten,
- Grundlegende Sicherheitseinstellungen anwenden, wie das Aktivieren von SELinux und der Firewall,
- Firewall-Regeln (in der öffentlichen Zone) verwalten.
Dies ist ein Fork von bertvv.rh-base. Das Original ist großartig, aber ich wollte einen anderen Weg einschlagen.
Anforderungen
Keine speziellen Anforderungen
Rollenvariablen
Variable | Standard | Kommentare (Typ) |
---|---|---|
rhbase_enable_repos |
[] | Liste von Diktaten, die Repositories angeben, die aktiviert werden sollen. Siehe unten für Details. |
rhbase_firewall_allow_ports |
[] | Liste von Ports, die durch die Firewall zugelassen werden sollen, z.B. 80/tcp, 53/udp usw. |
rhbase_firewall_allow_services |
[] | Liste von Diensten, die durch die Firewall zugelassen werden sollen, z.B. http, dns usw. (1) |
rhbase_firewall_interfaces |
[] | Liste von Netzwerkschnittstellen, die der öffentlichen Zone der Firewall-Regeln hinzugefügt werden sollen. |
rhbase_hosts_entry |
true | Wenn gesetzt, wird ein Eintrag in /etc/hosts mit dem Hostnamen der Maschine hinzugefügt. Dies beschleunigt das Sammeln von Fakten. |
rhbase_install_packages |
[] | Liste von Paketen, die installiert werden sollen. URLs sind ebenfalls erlaubt. |
rhbase_motd |
false | Wenn gesetzt, wird eine benutzerdefinierte /etc/motd mit Informationen über den Hostnamen und IP-Adressen installiert. |
rhbase_override_firewalld_zones |
false | Wenn gesetzt, ermöglicht es NetworkManager, die von dem Administrator festgelegten Firewall-Zonen zu überschreiben (2). |
rhbase_remove_packages |
[] | Liste von Paketen, die nicht installiert werden sollen. |
rhbase_repo_exclude_from_update |
[] | Liste von Paketen, die von einem Update ausgeschlossen werden sollen. Wildcards sind erlaubt, z.B. kernel* . |
rhbase_repo_exclude |
[] | Liste von Repositories, die in yum/dnf.conf deaktiviert werden sollen. |
rhbase_repo_gpgcheck |
false | Wenn gesetzt, werden GPG-Überprüfungen beim Installieren von Paketen durchgeführt. |
rhbase_repo_installonly_limit |
3 | Die maximale Anzahl von Versionen eines Pakets (z.B. kernel), die gleichzeitig installiert werden können. Sollte mindestens 2 sein. |
rhbase_repo_remove_dependencies |
true | Wenn gesetzt, werden Abhängigkeiten, die nach der Entfernung eines Pakets unbenutzt bleiben, ebenfalls entfernt. |
rhbase_repositories |
[] | Liste von RPM-Paketen (einschließlich URLs), die externe Repositories installieren (z.B. epel-release ). |
rhbase_selinux_state |
enforcing | Der Standard-SELinux-Zustand für das System. Lass dies einfach so. |
rhbase_selinux_booleans |
[] | Liste von SELinux-Boolean, die aktiviert werden sollen, z.B. httpd_can_network_connect |
rhbase_ssh_key |
- | Der öffentliche SSH-Schlüssel für den Administrator-Benutzer, der ihr den Login ohne Passwort ermöglicht. Der Benutzer sollte existieren. |
rhbase_ssh_user |
- | Der Name des Benutzers, der diese Maschine verwaltet. Der SSH-Schlüssel wird im Home-Verzeichnis des Benutzers installiert. (3) |
rhbase_start_services |
[] | Liste von Diensten, die ausgeführt und aktiviert werden sollen. |
rhbase_stop_services |
[] | Liste von Diensten, die nicht ausgeführt werden sollen. |
rhbase_tz |
:/etc/localtime | Setzt die $TZ -Umgebungsvariable (4) |
rhbase_update |
false | Wenn gesetzt, wird ein Paket-Update durchgeführt. |
rhbase_user_groups |
[] | Liste von Benutzergruppen, die vorhanden sein sollen. |
rhbase_users |
[] | Liste von Diktaten, die Benutzer angeben, die vorhanden sein sollen. Siehe unten für ein Beispiel. |
rhbase_taskrunner_key |
[] | Autorisierter öffentlicher Schlüssel für die Verbindung als Taskrunner |
Anmerkungen:
(1) Eine vollständige Liste gültiger Werte für rhbase_firewall_allow_services
kann mit dem Befehl firewall-cmd --get-services
ermittelt werden.
(2) Dies ist ein Workaround für CentOS-Fehler #7407. NetworkManager verwaltet standardmäßig Firewall-Zonen, wodurch die Regeln, die Sie mit --permanent
hinzufügen, überschrieben werden.
(3) Das Setzen der Variable rhbase_ssh_user
erstellt tatsächlich keinen Benutzer, sondern installiert den rhbase_ssh_key
im Home-Verzeichnis dieses Benutzers (~/.ssh/authorized_keys
). Folglich sollte rhbase_ssh_user
der Name eines vorhandenen Benutzers sein, der in rhbase_users
angegeben ist.
(4) Das Setzen der $TZ
-Variable kann die Anzahl der Systemaufrufe minimieren. Siehe https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
Repositories aktivieren
Aktivieren Sie (installierte, aber deaktivierte) Repositories, indem Sie rhbase_enable_repos
als Liste von Diktaten mit den Schlüsseln name:
(erforderlich) und section:
(optional) angeben, z.B.:
rhbase_enable_repos:
- name: CentOS-fasttrack
section: fasttrack
- name: epel-testing
Wenn der Abschnitt nicht angegeben ist, wird standardmäßig der Repositoriumsname verwendet.
Benutzer hinzufügen
Benutzer werden durch Diktate wie folgt angegeben:
rhbase_users:
- name: johndoe
comment: 'John Doe'
groups:
- users
- devs
password: '$6$WIFkXf07Kn3kALDp$fHbqRKztuufS895easdT [...]'
- name: janedoe
Der einzige erforderliche Schlüssel ist name
.
Schlüssel | Erforderlich | Standard | Anmerkungen |
---|---|---|---|
name |
ja | - | Der Benutzername |
comment |
nein | '' | Kommentarstring |
shell |
nein | '/bin/bash' | Die Kommandozeile des Benutzers |
groups |
nein | [] | Gruppen, zu denen dieser Benutzer hinzugefügt werden soll (1) |
password |
nein | '!!' | Der Passwort-Hash des Benutzers (2) |
Anmerkungen:
(1) Wenn Sie einen Benutzer zum Administrator machen möchten, stellen Sie sicher, dass er Mitglied der Gruppe wheel
ist (Siehe RedHat System Administrator's Guide.
(2) Das Passwort sollte als Hash angegeben werden, wie von crypt(3) zurückgegeben, in der Form $algo$salt$hash
. Für Tests und Proof-of-Concept-VMs können Sie sich https://www.mkpasswd.net/ ansehen, um Hashes in der richtigen Form zu generieren. Typische Hash-Typen für Linux sind MD5 (crypt-md5, Hashes, die mit $1$
beginnen) und SHA-512 (crypt-sha-512, Hashes, die mit $6$
beginnen).
Abhängigkeiten
Keine Abhängigkeiten.
Beispiel-Playbook
Kommt bald
Testen
Kommt bald
Mitwirken
Probleme, Funktionsanforderungen, Ideen sind willkommen und können im Abschnitt "Issues" gepostet werden.
Pull-Requests sind ebenfalls sehr willkommen. Der beste Weg, einen PR einzureichen, besteht darin, zuerst einen Fork dieses Github-Projekts zu erstellen, dann einen Themenzweig für die vorgeschlagene Änderung zu erstellen und diesen Zweig in Ihren eigenen Fork zu pushen. Github kann dann leicht einen PR basierend auf diesem Zweig erstellen. Vergessen Sie nicht, Ihren Namen zur Liste der Mitwirkenden unten hinzuzufügen!
Lizenz
BSD
Mitwirkende
- Michael Cleary (Betreuer)
Ursprüngliche Mitwirkende
- Bert Van Vreckem
- Jeroen De Meerleer
- Sebastien Nussbaum
Base setup of a server with a RedHat-based Linux distribution with the systemd init system.
ansible-galaxy install clusterapps.rhbase