Files
ansible-role-unix-users/molecule/default/converge.yml
T
volker.raschekandCopilot de280ef620
Lint Markdown files / markdown-lint (push) Successful in 7s
Ansible Linter / ansible-lint (push) Successful in 2m15s
Molecule / Molecule (push) Successful in 5m45s
Release Ansible Role / Release Ansible Role (push) Successful in 1m35s
feat(ssh)!: configure keys with filename and content
Accept SSH key content directly so callers no longer need role-specific
source directories. Update Molecule coverage and documentation.

BREAKING CHANGE: private_keys entries must be objects with filename and
content instead of file names. authorized_keys entries must provide
content alongside filename. Public keys are also written to ~/.ssh.

Co-authored-by: Copilot <copilot@github.com>
2026-10-17 21:41:41 +02:00

69 lines
2.2 KiB
YAML

---
# A btrfs home is not covered, a container has no btrfs filesystem to create a subvolume on.
- name: Converge
hosts: all
vars:
unix_groups:
molecule-alice:
# An unquoted gid is an integer, the role has to cope with that.
gid: 4242
state: present
molecule-bob:
state: present
molecule-obsolete:
state: absent
unix_users:
molecule-alice:
state: present
name: Alice
uid: 4242
group: molecule-alice
home: /home/molecule-alice
shell: /bin/bash
password: alice
email: alice@example.local
ssh:
config:
- Host: "*"
StrictHostKeyChecking: "no"
authorized_keys:
- filename: alice.pub
content: "{{ lookup('ansible.builtin.file', molecule_scenario_directory + '/files/ssh/authorized_keys/molecule.pub', rstrip=false) }}"
command: "/usr/bin/true"
envs:
- key: EDITOR
value: vi
- filename: alice-login.pub
content: "{{ lookup('ansible.builtin.file', molecule_scenario_directory + '/files/ssh/authorized_keys/molecule.pub', rstrip=false) }}"
private_keys:
- filename: alice.ed25519.key
content: "{{ lookup('ansible.builtin.file', molecule_scenario_directory + '/files/ssh/private_keys/molecule.ed25519.key', rstrip=false) }}"
netrc:
- machine: hostname.local
login: alice
password: secret
shell_rc_files:
- file: molecule.bashrc
aliases:
- key: dcd
value: docker compose down
envs:
- export: true
key: PATH
value: "${HOME}/bin:${PATH}"
functions:
- name: foo
value: "echo \"bar\""
# Bob declares nothing optional, so none of the optional files may show up in his home.
molecule-bob:
state: present
group: molecule-bob
molecule-dave:
state: absent
tasks:
# The role is included by the name of its directory, which molecule put on the roles path.
- name: Include the role unix-users
ansible.builtin.include_role:
name: unix-users