[defaults] inventory = inventory/hosts.ini roles_path = roles # Galaxy collections live in the repo (gitignored), installed from # collections/requirements.yml. The devcontainer image does NOT ship them, so without # this every play dies at parse time on community.general.modprobe. collections_path = collections host_key_checking = False retry_files_enabled = False # SSH key the k3s nodes authorize for the `k3s` user (see inventory ansible_user). # Set here so node config plays (e.g. the rolling k3s config.yaml + Restart handler) connect # without a per-run --private-key. Path is on the operator workstation / dev container ~/.ssh. private_key_file = ~/.ssh/home_network # ansible-core 2.20 removed community.general.yaml; use the builtin default with YAML result format. stdout_callback = default result_format = yaml interpreter_python = auto_silent # Vault passphrase file — kept OUTSIDE the repo (never committed). Decrypts the vaulted # group_vars (e.g. the host become password) so plays run unattended. Create it once: # install -m600 /dev/stdin ~/.config/home-k3s/ansible-vault-pass <<<'YOUR_VAULT_PASSPHRASE' vault_password_file = ~/.config/home-k3s/ansible-vault-pass [ssh_connection] pipelining = True ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=accept-new