Removing the SSH banner only hid the symptom. userconfig.service is a
Type=oneshot unit that runs
whiptail --inputbox "Which user would you like to rename:" 20 60 pi
on tty8 and waits for an answer, which on a headless Pi never comes - it had
been sitting in "activating" for four and a half hours on musicdolphin. It is
WantedBy=multi-user.target, so that target never finished activating either, and
the boot job for it was still queued from boot. Anything ordered
After=multi-user.target then gets a start job that queues behind it and hangs
forever: musicmouse.service never started, and the ansible task that starts it
blocked until killed.
The pi user already exists on these images, so the wizard has nothing to do.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
pi_standard_setup
Baseline provisioning applied to every Pi: apt update/upgrade, detects the
Pi model, adds a root SSH key, disables the SSH locale-forwarding warning,
optionally configures wifi and the hostname, and rotates the default
pi/raspberry credentials via the keepass lookup plugin.
Key vars: pi_standard_setup_wifi_ssid, pi_standard_setup_new_hostname,
pi_standard_setup_timezone, pi_standard_setup_wifi_country,
ansible_ssh_pass (the OS-default password, used only to reach a
freshly-flashed Pi for the first time before its password is rotated)