HanXHX.debian_bootstrap

Ansible Debian/Devuan/Ubuntu/Raspbian Bootstrap

Ansible Galaxy GitHub Workflow Status (with branch)

Dieses Rollout-Tool richtet Debian/Devuan/Ubuntu/Raspbian Hosts ein:

  • Konfigurieren Sie APT (sources.list)
  • Minimalpakete installieren (vim, htop...)
  • Intel/AMD Mikrocode installieren, falls nötig
  • NTP-Dienst installieren und konfigurieren (OpenNTPd oder NTP)
  • Gruppen und Benutzer mit SSH-Schlüssel und sudo-Rechten hinzufügen
  • bashrc, vimrc für Root bereitstellen
  • Einige Alternativen aktualisieren
  • System konfigurieren: Hostname, Zeitzone und Sprache
  • Systemd löschen und vermeiden, falls gewünscht
  • Sysctl anpassen

Unterstützte Versionen

OS Arbeitsfähig Stabil (aktive Unterstützung)
Debian Stretch (9) Ja Nein
Debian Buster (10) Ja Ja
Debian Bullseye (11) Ja Ja
Debian Bookworm (12) Ja Ja
Devuan Ascii (2) Ja Nein
Raspbian Stretch (9) Experimentell Nein
Raspbian Buster (10) Experimentell Nein
Raspbian Bullseye (11) Experimentell Nein
Ubuntu Bionic (18.04) Ja Nein
Ubuntu Focal (20.04) Experimentell Nein
Ubuntu Jammy (22.04) Experimentell Nein

Anforderungen

Rollenvariablen

APT-Konfiguration

Diese Variablen definieren den Hostname zur Konfiguration von APT (normales Repository und Backports):

  • dbs_apt_default_host: Repository-Host. Kann das letzte (mit dieser Rolle installiert) durch einen neuen ersetzen
  • dbs_apt_use_src: "deb-src" Repositories installieren (Standard: falsch)
  • dbs_apt_components: Komponenten, die in sources.list verwendet werden (Standard: "main contrib non-free non-free-firmware")

Rolleneinrichtung

  • dbs_set_hostname: Wenn wahr, Hostnamen ändern
  • dbs_clean_hosts: Wenn wahr, verwaltet die Datei /etc/hosts
  • dbs_set_locale: Wenn wahr, konfigurieren Sie die Sprachen
  • dbs_set_timezone: Wenn wahr, Zeitzone setzen
  • dbs_set_ntp: Wenn wahr, OpenNTPd installieren und konfigurieren
  • dbs_set_apt: Wenn wahr, APT-Repository konfigurieren

Systemkonfiguration

  • dbs_hostname: Systemhostname
  • dbs_hostname_use_strategy: Strategie zur Festlegung des Hostnamens (erfahren Sie mehr im hostname-Modul). Diese Variable sollten Sie nur ändern, wenn der Hostname fehlschlägt (z. B. in LXC).
  • dbs_default_locale: Standardsprache des Systems
  • dbs_locales: Liste der installierten Sprachen
  • dbs_timezone: Systemzeitzone. Wenn Sie eine "standardmäßige" Zeitzone wie UTC benötigen, müssen Sie das Präfix "Etc/" verwenden (z. B.: "Etc/UTC").
  • dbs_sysctl_config: Hash von Kernelparametern, siehe: default/main.yml
  • dbs_use_systemd: Systemd löschen, wenn auf falsch gesetzt (persistent)
  • dbs_use_dotfiles: Root-Dotfiles überschreiben (bashrc, screenrc, vimrc)
  • dbs_uninstall_packages: Liste der Pakete zur Deinstallation

Alternativen

  • dbs_alternative_editor
  • dbs_alternative_awk

NTPd

  • dbs_ntp_hosts: Liste der Hostnamen von NTP-Servern
  • dbs_ntp_pkg: Paket, das NTP bereitstellt: "openntpd" oder "ntp"

Gruppen

  • dbs_groups: Liste der Gruppen

Jede Zeile hat einige Schlüssel:

  • name: (M) Benutzername im System
  • system: (O) ja/nein (Standard: nein)
  • state: (O) vorhanden/nicht vorhanden (Standard: vorhanden)

(M) Pflicht (O) Optional

Benutzer

  • dbs_users: Liste der Benutzer

Jede Zeile hat einige Schlüssel:

  • name: (M) Benutzername im System
  • password: (O) Passwort im Hash-Format (siehe Ansible-Dokumentation)
  • clear_password: (O) Passwort im Klartext (nicht empfohlen)
  • update_password: (O) immer / bei_Erstellung
  • shell: (O) Standard ist /bin/bash
  • comment: (O) Standard ist ein leerer String
  • sudo: (O) boolescher Wert (wahr = kann sudo verwenden)
  • group: (O) Hauptgruppe (Standard ist name ohne Passwort)
  • groups: (O) Kommaseparierte Liste der Gruppen
  • createhome: (O) ja/nein
  • system: (O) ja/nein (Standard: nein)
  • ssh_keys: (O) Liste der SSH-Öffentlichen Schlüssel
  • state: (O) vorhanden/nicht vorhanden (Standard: vorhanden)

(M) Pflicht (O) Optional

Hinweise:

  • Wenn password angegeben ist, wird clear_password nicht verwendet!
  • clear_password ist nicht idempotent mit update_password = immer (Standard)

Für weitere Informationen siehe Ansible-Benutzermodul-Dokumentation.

Nur-Lese-Variablen

  • dbs_packages: Liste der zu installierenden Pakete
  • dbs_microcode_apt_distribution: Ort des Pakets zur Installation von Mikrocode
  • dbs_distro_packages: Liste spezifischer Pakete zur Installation (bezogen auf die OS-Version)
  • dbs_is_docker: boolean. Ist wahr, wenn das aktuelle System ein Docker-Container ist

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: servers
  roles:
     - { role: HanXHX.debian_bootstrap }

Über Docker

Aufgrund der Einschränkungen von Docker sind folgende Funktionen deaktiviert:

  • Entfernen von systemd
  • Festlegen des Hostnamens
  • Konfigurieren von sysctl

Wie man diese Rolle entwickelt und testet

Vagrant-Methode

Installieren Sie Vagrant + VirtualBox oder Docker

vagrant up debian-bullseye # mit VirtualBox
vagrant up docker-debian-bullseye # mit Docker

Molecule-Methode

Installieren:

pip install molecule molecule[docker]

Ausführen:

molecule -vv -c molecule/_shared/base.yml converge -s ubuntu-22.04

Lizenz

GPLv2

Spende

Wenn Ihnen dieser Code geholfen hat oder Sie ihn für Ihre Projekte verwendet haben, können Sie mir gerne etwas :beers: kaufen:

  • Bitcoin: 1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
  • Ethereum: 0x63abe6b2648fd892816d87a31e3d9d4365a737b5
  • Litecoin: LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
  • Monero: 45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ

Keine Kryptowährung? :star: Das Projekt ist auch eine Möglichkeit, danke zu sagen! :sunglasses:

Autoreninformationen

Über das Projekt

Normalize and prepare a Debian/Devuan/Ubuntu Linux server

Installieren
ansible-galaxy install HanXHX.debian_bootstrap
Lizenz
gpl-2.0
Downloads
6.5k
Besitzer
CEO/CTO/SRE triplestack.fr / daemonit.com