HanXHX.debian_bootstrap
Ansible Debian/Devuan/Ubuntu/Raspbian Bootstrap
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
- Ansible >= 2.11
- Sammlungen: ansible.posix collection / community.general
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 ersetzendbs_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 änderndbs_clean_hosts: Wenn wahr, verwaltet die Datei/etc/hostsdbs_set_locale: Wenn wahr, konfigurieren Sie die Sprachendbs_set_timezone: Wenn wahr, Zeitzone setzendbs_set_ntp: Wenn wahr, OpenNTPd installieren und konfigurierendbs_set_apt: Wenn wahr, APT-Repository konfigurieren
Systemkonfiguration
dbs_hostname: Systemhostnamedbs_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 Systemsdbs_locales: Liste der installierten Sprachendbs_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.ymldbs_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_editordbs_alternative_awk
NTPd
dbs_ntp_hosts: Liste der Hostnamen von NTP-Serverndbs_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 Systemsystem: (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 Systempassword: (O) Passwort im Hash-Format (siehe Ansible-Dokumentation)clear_password: (O) Passwort im Klartext (nicht empfohlen)update_password: (O) immer / bei_Erstellungshell: (O) Standard ist /bin/bashcomment: (O) Standard ist ein leerer Stringsudo: (O) boolescher Wert (wahr = kann sudo verwenden)group: (O) Hauptgruppe (Standard istnameohne Passwort)groups: (O) Kommaseparierte Liste der Gruppencreatehome: (O) ja/neinsystem: (O) ja/nein (Standard: nein)ssh_keys: (O) Liste der SSH-Öffentlichen Schlüsselstate: (O) vorhanden/nicht vorhanden (Standard: vorhanden)
(M) Pflicht (O) Optional
Hinweise:
- Wenn
passwordangegeben ist, wirdclear_passwordnicht verwendet! clear_passwordist nicht idempotent mitupdate_password= immer (Standard)
Für weitere Informationen siehe Ansible-Benutzermodul-Dokumentation.
Nur-Lese-Variablen
dbs_packages: Liste der zu installierenden Paketedbs_microcode_apt_distribution: Ort des Pakets zur Installation von Mikrocodedbs_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
- Twitter: @hanxhx_
Normalize and prepare a Debian/Devuan/Ubuntu Linux server
ansible-galaxy install HanXHX.debian_bootstrap