stackbuilders.sb-debian-base
Warnung: Diese Bibliothek ist veraltet und wird nicht mehr gewartet. Sie wird keine weiteren Sicherheitsupdates, Funktionen oder Fehlerbehebungen erhalten und ist hier auf GitHub aus Archivgründen gespeichert. Wenn Sie sie verwenden möchten, empfehlen wir, das Repository zu forken und den Code vor der Verwendung zu überprüfen. Für weitere Informationen kontaktieren Sie uns unter info@stackbuilders.com.
Empfohlene Rollen:
Stack Builders - Debian Basis
Generisches Debian-Image für Server. Diese Galaxy benötigt Ansible 2.7.0
Unterstützte Plattformen
Debian
- 10 (buster)
- 9 (stretch)
Ubuntu
- 18.04 (bionic)
- 16.04 (xenial)
WESENTLICHE ÄNDERUNGEN:
- Haskell-Aufgaben wurden aus dieser Rolle entfernt, daher werden die Variablen
install_haskell_stack
undinstall_haskell_dependencies
für die Ausführung von Haskell-Installationsaufgaben nicht mehr verwendet.
Verwendung dieser Rolle
Die aktuelle Version verwendet die Ansible-Flusskontrolle (wenn: foo definiert ist), um Aufgaben in den verschiedenen Phasen auszuführen, behält jedoch einige nützliche Tags wie das Festlegen des Hostnamens oder das Erstellen des Bereitstellungsverzeichnisses.
Stellen Sie zunächst sicher, dass Sie die Datei requirements.yml
erstellen und den Verweis auf dieses Repository hinzufügen, wie folgt:
---
- src: [email protected]:stackbuilders/sb-debian-base.git
version: <tag, commit oder branch>
path: external-roles
Danach müssen Sie den folgenden Befehl ausführen:
ansible-galaxy install -r requirements.yml
Erstellen eines Playbooks
Erstellen Sie eine Playbook-Datei und setzen Sie im Rollenteil die Gruppe von Aufgaben, die Sie ausführen möchten. Als Beispiel können Sie tests/site.yml
oder das folgende Beispiel verwenden:
# site.yml
- hosts: all
remote_user: foo
vars:
sb_debian_base_admin_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
sb_debian_base_deploy_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
roles:
- role: sb-debian-base
prebootstrap: yes
- role: sb-debian-base
bootstrap: yes
add_remove_keys: yes
vars:
sb_debian_base_deploy_user: deployer
sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
sb_debian_base_environment_variables:
ONE: "uno"
TWO: "dos"
Sie können auch Ad-hoc-Aufgaben ausführen, obwohl dies nicht die empfohlene Vorgehensweise ist:
ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"
Führen Sie das Playbook so aus:
# Basisbild
ansible-playbook -l local -i hosts site.yml -k -u root
# Administrator-Konto
ansible-playbook -l local -i hosts site.yml -u administrator
Die folgenden Gruppen von Aufgaben sind verfügbar:
Prebootstrap (prebootstrap)
Dieses Tag enthält grundlegende Einrichtungsaufgaben, wie zum Beispiel:
- Administratorbenutzer hinzufügen
- Standardmäßig
admin
in Debian,ubuntu
in Ubuntu. Sie können die Variable {{ sb_debian_base_admin_user }} definieren
- Standardmäßig
- Paket-Cache aktualisieren
- Sudo-Paket installieren
- Sudo ohne Passwort für die Sudo-Gruppe verwenden
- Autorisierte SSH-Schlüssel für Administratorbenutzer einrichten
- Sie müssen {{ sb_debian_base_admin_user_authorized_keys }} definieren
Bootstrap (bootstrap)
Dieses Tag enthält fortgeschrittene Einrichtungsaufgaben, wie:
- Passwortauthentifizierung für SSH-Sitzungen verbieten
- SSH-Zugriff für den Root-Benutzer verbieten
- Hostnamen festlegen
- Sie können {{ hostname }} definieren
- Zeitzone festlegen
- Sie können {{ sb_debian_base_ntp_timezone }} definieren
- NTP mit systemd-timesyncd aktivieren
- Sicherstellen, dass Journald-Daten dauerhaft gespeichert werden
- Alle Pakete aktualisieren
- Grundpakete installieren
- z.B.: vim, tmux, htop, atop, tree, ufw, emacs, git, curl
- Zusätzliche Pakete installieren - nicht nur sb_debian_base_extra_packages
- Firewall mit UFW aktivieren
- Allgemeine Ports öffnen (z.B. SSH-Port, HTTP-Port; standardmäßig SSH)
- Sie können {{ ports }} definieren
- Bestimmte Ports für bestimmte IPs öffnen
- Sie können {{ port_ips }} definieren
- Sie können UFW mit
sb_debian_base_firewall: no
deaktivieren
- Allgemeine Ports öffnen (z.B. SSH-Port, HTTP-Port; standardmäßig SSH)
- Umgebungsvariablen festlegen und aktualisieren
- Sie müssen {{ sb_debian_base_environment_variables }} definieren
- Unix-Benutzer und -Gruppe für das Bereitstellungskonto erstellen
- Sie müssen die Variable {{ sb_debian_base_deploy_user }} definieren (z.B. deployer)
- Optional können Sie die Variable {{ sb_debian_base_deploy_user_group }} definieren (z.B. deployer), andernfalls ist sie dieselbe wie {{ sb_debian_base_deploy_user }}
- Anwendungsbereitstellungsverzeichnis erstellen
- SSH-Schlüssel für GitHub's «Deploy keys» hinzufügen
- Autorisierte SSH-Schlüssel für den Bereitstellungsbenutzer einrichten
- Sie müssen {{ sb_debian_base_deploy_user_authorized_keys }} definieren
- Sicherstellen, dass github.com ein bekannter Host ist
- Sie müssen {{ sb_debian_base_deploy_user }} definieren
- Diese Variable fügt standardmäßig GitHub als bekannten Host hinzu, es ist jedoch möglich, dies zu ändern, indem Sie {{ sb_debian_base_known_hosts }} überschreiben
- Globale Bash-Historienkonfiguration im folgenden Format setzen:
285 Thu 08 Aug 2019 01:43:40 PM UTC einige befehle
Siehe unten für verfügbare Variablen.
Hostnamen festlegen (set-hostname)
- Hostnamen auf die host-spezifische Variable setzen
- Sie müssen {{ hostname }} definieren
Bash-Historienkonfiguration festlegen:
Aktivieren/deaktivieren Sie die Historienkonfiguration
sb_debian_base_bash_history: true
Unter
sb_debian_base_bash_history_config:
- Legen Sie die Anzahl von Zeilen fest, die im Historienpuffer gespeichert werden sollen
histsize: '5000'
- Legen Sie die Anzahl von Zeilen fest, die in der Historiendatei gespeichert werden sollen
histfilesize: '3000'
- Legen Sie das Zeitformat fest, um vor jedem Historienbefehl anzuhängen (siehe
man history
für vollständige Optionen)histtimeformat: '%c%t'
- Legen Sie die Anzahl von Zeilen fest, die im Historienpuffer gespeichert werden sollen
Anwendungsverzeichnis erstellen (create-app-directory)
- Erstellen Sie das Anwendungsbereitstellungsverzeichnis
- Wenn {{ sb_debian_base_deploy_user }} definiert ist
Externe Abhängigkeiten (Galaxien), die in dieser Gruppe von Bootstrap-Aufgaben enthalten sind
- kamaln7.swapfile (Swapfile einrichten)
- Sie können die Variable {{ sb_debian_base_swap_file_size }} definieren (z.B. 2048MB)
- Unattended-upgrades für Sicherheitsupdates installieren
- Sie können die Variable {{ sb_debian_base_uu_email_alerts }} definieren (z.B. example@example.com)
Autorisierte SSH-Schlüssel aktualisieren (add-remove-keys)
Aktualisiert autorisierte SSH-Schlüssel:
- Sie müssen die folgende Liste von Variablen definieren, die die SSH öffentlichen Schlüssel für die Administrator- und Bereitstellungsbenutzer enthalten:
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}
Lizenz
MIT, siehe die LICENSE Datei in diesem Repository.
Autoreninformation
Justin Leitgeb, Stack Builders Inc.
ansible-galaxy install stackbuilders.sb-debian-base