fpiesche.raspi_setup

ansible-role-raspi-setup

Eine Ansible-Rolle, um eine grundlegende Einrichtung für eine Gruppe von Raspberry Pi-Hosts durchzuführen, die für die Verwendung mit "headless" Maschinen gedacht ist.

Wenn diese Rolle auf einer frischen Installation von Raspberry Pi OS mit nur aktiviertem SSH ausgeführt wird (fügen Sie eine leere Datei namens ssh zum boot-Partition auf der SD-Karte vor dem ersten Start hinzu, um dies zu erreichen!), kann diese Rolle verwendet werden, um:

  • Den hostname so einzustellen, dass er mit dem Hostnamen aus dem Ansible-Inventar oder aus einer Variablen namens local_hostname übereinstimmt.
  • Verschiedene Optionen in der Datei config.txt der verschiedenen Pis aus einer Variablen namens config_settings einzustellen.
  • Autorisierte SSH-Schlüssel für den Benutzer pi zur passwortlosen Anmeldung aus einer Variablen namens authorized_keys hinzuzufügen.
  • Das Standardpasswort des Benutzers pi aus einer Variablen namens pi_password zu ändern.

Um Schritte zu überspringen, lassen Sie einfach die entsprechende Variable ungesetzt.

Ich empfehle, dies mit dev-sec.ssh-hardening zu kombinieren, um den SSH-Zugang so zu sperren, dass die Passwortanmeldung aus Sicherheitsgründen nicht erlaubt ist und um eine Reihe anderer Sicherheitsverbesserungen an der Standardkonfiguration von SSHD vorzunehmen.

Zusätzlich können Sie geerlingguy.swap verwenden, um eine Swap-Datei einzurichten, falls erforderlich!

Beispiel-Playbook

Haupt-Playbook playbook.yml

- hosts: raspis
  roles:
    # Diese Rolle richtet automatisch passwortloses SSH für die angegebenen Schlüssel ein
    # und passt alle über das Host-Inventar übergebenen config.txt-Einstellungen an.
    - role: fpiesche.raspi_setup
      vars:
        # Diese Werte sind die Standardwerte für alle Pis, können jedoch
        # pro Host überschrieben werden.            
        authorized_keys: ["{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}",
                          "/home/otheruser/.ssh/id_rsa.pub",
                          "ssh-rsa ..."]
        # Die Variable `pi_password` muss ein gehashtes Passwort sein.
        pi_password: "{{ raspberry | password_hash('sha512') }}"

    # EMPFOHLEN: Diese Rolle sperrt den SSH-Zugang, um die Passwortanmeldung zu verbieten
    # und macht andere Sicherheitsverbesserungen an der Standard-SSH-Konfiguration.
    # https://github.com/dev-sec/ansible-ssh-hardening
    - role: dev-sec.ssh-hardening
      become: yes
    
    # OPTIONALE: Einrichten einer Swap-Datei mithilfe der Host-Variablen `swap_megabytes`
    # https://github.com/geerlingguy/ansible-role-swap
    - role: geerlingguy.swap
      become: yes

Inventar hosts.yml

Hier ist ein Auszug aus der hosts.yml, die ich für meinen Docker-Cluster mit verschiedenen Versionen von Pi verwende:

---
all:
  children:
    raspis:
      vars:
        ansible_python_interpreter: /usr/bin/python3
        ansible_user: pi
        ansible_password: raspberry
      hosts:
        pi-1-a.local:
          # Setzen Sie ein anderes Passwort für den Benutzer `pi` auf diesem Pi
          pi_password: "{{ pi1-password | password_hash('sha512') }}"
          # Alles im Abschnitt config_settings wird automatisch gesetzt
          # in der config.txt dieses Pis und das System danach neu gestartet.
          config_settings:
            - name: "gpu_mem"
              value: 16
            # Übertaktungseinstellungen für Raspberry Pi 1, entnommen von
            # https://haydenjames.io/raspberry-pi-safe-overclocking-settings/
            - name: "arm_freq"
              value: 1000
            - name: "sdram_freq"
              value: 500
            - name: "core_freq"
              value: 500
            - name: "over_voltage"
              value: 6
            - name: "temp_limit"
              value: 75
          # Dies wird von Jeff Geerling's `geerlingguy.swap` Rolle verwendet, um eine 1GB Swap-Datei einzurichten.
          # https://github.com/geerlingguy/ansible-role-swap
          swap_file_size_mb: 1024

        pi-2.local:
          pi_password: "{{ pi2-password | password_hash('sha512') }}"
          local_hostname: that-other-one
          config_settings:
            - name: "gpu_mem"
              value: 16
            # Übertaktungseinstellungen für Raspberry Pi 2, entnommen von
            # https://wiki.debian.org/RaspberryPi#Overclocking_Pi_2
            - name: "arm_freq"
              value: 1000
            - name: "core_freq"
              value: 500
            - name: "sdram_freq"
              value: 400
            - name: "over_voltage"
              value: 0
            - name: "over_voltage_sdram_p"
              value: 0
            - name: "over_voltage_sdram_i"
              value: 0
            - name: "over_voltage_sdram_c"
              value: 0
            - name: "temp_limit"
              value: 75
          swap_file_size_mb: 1024
Über das Projekt

Perform basic setup for headless use on newly deployed Raspberry Pi OS installations

Installieren
ansible-galaxy install fpiesche.raspi_setup
GitHub Repository
Lizenz
Unknown
Downloads
382
Besitzer