fpiesche.raspi_setup

ansible-role-raspi-setup

Un rol de Ansible para realizar la configuración básica en un grupo de hosts Raspberry Pi, destinado a usarse con máquinas sin pantalla.

Cuando se ejecuta en una instalación nueva de Raspberry Pi OS con solo ssh habilitado (¡agrega un archivo vacío llamado ssh en la partición boot de la tarjeta SD antes del primer arranque para hacer esto!), este rol puede usarse para:

  • Establecer el hostname para que coincida con el nombre de host dado en el inventario de Ansible o de una variable llamada local_hostname.
  • Configurar varias opciones en el config.txt de diferentes Pis desde una variable llamada config_settings.
  • Agregar claves ssh autorizadas al usuario pi para iniciar sesión sin contraseña desde una variable llamada authorized_keys.
  • Cambiar la contraseña predeterminada del usuario pi desde una variable llamada pi_password.

Para omitir cualquiera de los pasos, simplemente deja la variable relevante sin establecer.

Recomiendo combinar esto con el dev-sec.ssh-hardening, que limitará el acceso ssh para deshabilitar el inicio de sesión por contraseña, así como realizar una serie de otras mejoras de seguridad en la configuración predeterminada de sshd.

Además, puedes usar el geerlingguy.swap para configurar un archivo de intercambio si es necesario.

Ejemplo de playbook

Playbook principal playbook.yml

- hosts: raspis
  roles:
    - role: fpiesche.raspi_setup
      vars:
        authorized_keys: ["{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}",
                          "/home/otheruser/.ssh/id_rsa.pub",
                          "ssh-rsa ..."]
        pi_password: "{{ raspberry | password_hash('sha512') }}"

    - role: dev-sec.ssh-hardening
      become: yes
    
    - role: geerlingguy.swap
      become: yes

Inventario hosts.yml

Aquí hay un fragmento del hosts.yml que uso para mi clúster de Docker con varias versiones de Pi:

---
all:
  children:
    raspis:
      vars:
        ansible_python_interpreter: /usr/bin/python3
        ansible_user: pi
        ansible_password: raspberry
      hosts:
        pi-1-a.local:
          pi_password: "{{ pi1-password | password_hash('sha512') }}"
          config_settings:
            - name: "gpu_mem"
              value: 16
            - 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
          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
            - 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
Acerca del proyecto

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

Instalar
ansible-galaxy install fpiesche.raspi_setup
Licencia
Unknown
Descargas
382
Propietario