#cloud-config # Example: create user (pi), enable SSH, then download and run first-boot.sh to install # Chromium kiosk, rpd-labwc, and touch options. Edit FIRST_BOOT_URL to point to your # hosted first-boot.sh (e.g. file server or raw GitHub). # # 1. Generate a password hash: mkpasswd -m sha-512 'YourPassword' or openssl passwd -6 'YourPassword' # Paste the full output into the passwd: line below. # 2. Host first-boot.sh (same dir as this repo: cloud-init/first-boot.sh) at FIRST_BOOT_URL. # 3. Optional: copy first-boot.conf.example to first-boot.conf, edit variables, and host it # as first-boot.conf; then add a runcmd line to download it to /tmp/first-boot.conf before # running first-boot.sh so the script loads your config. # 4. To use a different username than "pi", set PI_USER in first-boot.conf and create that user below. package_update: true package_upgrade: false packages: - curl users: - name: pi groups: [adm, sudo, video] lock_passwd: false passwd: "$6$7xWGhGc6d1lJx1dU$4E8r1mkzVj51bjEbfzdP8wPxso..C36LbXkqU/X4oBGq94aGFMSrZb0PVI8zs/Om1Jm97/D..Apy2HTdCn3FV1" shell: /bin/bash write_files: - path: /etc/ssh/sshd_config.d/99-cloud-init.conf content: | PasswordAuthentication yes PermitRootLogin no runcmd: - systemctl enable ssh - systemctl start ssh - curl -fsSL "http://10.20.50.1:5000/files/first-boot.sh" -o /tmp/first-boot.sh # Optional: download config to override FILE_SERVER, HOSTNAME, PACKAGES, etc. # - curl -fsSL "http://10.20.50.1:5000/files/first-boot.conf" -o /tmp/first-boot.conf - chmod +x /tmp/first-boot.sh - /tmp/first-boot.sh # - rm -f /tmp/first-boot.sh /tmp/first-boot.conf - cloud-init single --name cc_final_message