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

Build Status Ansible Galaxy

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 und install_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
  • 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
  • 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'

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.

Über das Projekt

Base image and common roles

Installieren
ansible-galaxy install stackbuilders.sb-debian-base
Lizenz
mit
Downloads
14k
Besitzer
Our team strives to push the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.