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

Ursprüngliche Mitwirkende

Über das Projekt

Base setup of a server with a RedHat-based Linux distribution with the systemd init system.

Installieren
ansible-galaxy install clusterapps.rhbase
GitHub Repository
Lizenz
other
Downloads
215
Besitzer
I'm here to read the articles.