volker.raschek and Copilot
50ab126130
fix(tasks): fall back to user or group for empty filename
...
The default filter only replaces undefined values unless its boolean flag is
enabled. An entry with 'filename: ""' - as documented in defaults/main.yaml -
therefore produced a sudoers drop-in file without a name. Enabling the flag
makes the role fall back to the user or group name for empty filenames as
well.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
09f4b9fe4c
fix(tasks): match entries with empty user, group or runas values
...
The conditions relied on 'is defined' and 'is not defined'. An entry which
declares the unused key with an empty string - as documented in
defaults/main.yaml - matched none of the four tasks, so the sudoers drop-in
file was silently not created. Comparing the length of the defaulted values
instead makes exactly one task apply to every entry accepted by the
validation.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
c5011457e9
fix(meta): raise min_ansible_version to 2.11
...
Ansible 2.9 can neither resolve the used fully qualified collection names
reliably nor ship the community.general.sudoers module, which requires
ansible-base 2.10 or newer. Align the requirement with the sibling role
unix-users, which already declares 2.11.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
fec90dc9be
feat: declare community.general collection requirement
...
The role uses the community.general.sudoers module, but did not declare the
collection dependency like the sibling roles unix-users and
certificate_authority do. The sudoers module was added in community.general
4.3.0, its runas parameter in 4.7.0, therefore 4.7.0 is the lowest usable
version.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
d2e4036430
fix(tasks): match @includedir directive in /etc/sudoers
...
The regular expression required a leading hash, but sudo 1.9.1 introduced @includedir and distributions such as
Debian 12, Ubuntu 22.04, RHEL 9 and Arch Linux ship /etc/sudoers with that syntax. Since the existing line was never
matched, lineinfile appended a second directive and /etc/sudoers.d was included twice.
The dot in sudoers.d is escaped as well, so the expression no longer matches unrelated paths.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
c3f714a7c6
fix(tasks)!: stop flushing /etc/sudoers.d
...
Recreating /etc/sudoers.d on every run deleted every drop-in file on the host, not only the ones managed by this role.
That removes files shipped by packages or other tooling, such as 90-cloud-init-users on cloud instances, which can lock
out the remaining login paths. The task also reported changed on every run and therefore made check mode and CI runs
useless for detecting real drift.
The directory is now only ensured with its owner, group and permissions. To keep entries removable, each item of
sudo_users_sudoers accepts an optional state, which is passed to community.general.sudoers and defaults to present.
BREAKING CHANGE: Entries dropped from sudo_users_sudoers are no longer deleted implicitly. Set state: absent on the
entry to remove its drop-in file.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
volker.raschek and Copilot
7c76a5cc86
fix(tasks): include verify_vars.yaml as tasks file
...
The variable verification was included via include_vars, which is meant for variable files only. Additionally the
first_found lookup had no paths defined, so it searched the files/ subdirectory and the role root instead of tasks/ and
failed with "No file was found". Switching to include_tasks and adding the tasks path makes the verification run at all.
The assertion itself was fully commented out and is now active, so a misconfigured entry fails early instead of being
silently skipped by all four sudoers tasks.
Co-authored-by: Copilot <copilot@github.com >
2026-09-10 21:41:34 +02:00
CSRBot
fae902ac46
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.8.0' ( #40 ) from renovate/ansible-ansible-lint-26.x into master
Lint Markdown files / markdown-lint (push) Successful in 10s
Ansible Linter / ansible-lint (push) Successful in 33s
2026-08-12 09:14:12 +00:00
CSRBot
327ef710fd
chore(deps): update ansible/ansible-lint action to v26.8.0
Ansible Linter / ansible-lint (push) Successful in 44s
Lint Markdown files / markdown-lint (pull_request) Successful in 12s
Ansible Linter / ansible-lint (pull_request) Successful in 1m29s
Lint Markdown files / markdown-lint (push) Successful in 6s
2026-08-12 09:02:35 +00:00
CSRBot
4982345ed7
Merge pull request 'chore(deps): update actions/checkout action to v6.1.0' ( #39 ) from renovate/actions-checkout-6.x into master
Ansible Linter / ansible-lint (push) Successful in 30s
Lint Markdown files / markdown-lint (push) Successful in 7s
2026-07-20 18:20:09 +00:00
CSRBot
975791382c
chore(deps): update actions/checkout action to v6.1.0
Ansible Linter / ansible-lint (pull_request) Successful in 46s
Lint Markdown files / markdown-lint (pull_request) Successful in 6s
Lint Markdown files / markdown-lint (push) Successful in 6s
Ansible Linter / ansible-lint (push) Successful in 1m38s
2026-07-20 18:02:54 +00:00
CSRBot
ca8d8c83de
Merge pull request 'chore(deps): pin dependencies' ( #37 ) from renovate/pin-dependencies into master
Ansible Linter / ansible-lint (push) Successful in 29s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-07-03 00:02:23 +00:00
CSRBot
5189976a74
chore(deps): pin dependencies
Ansible Linter / ansible-lint (push) Successful in 26s
Lint Markdown files / markdown-lint (push) Successful in 4s
Ansible Linter / ansible-lint (pull_request) Successful in 26s
Lint Markdown files / markdown-lint (pull_request) Successful in 4s
2026-07-02 21:03:06 +00:00
CSRBot
3b726024a6
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.6.0' ( #38 ) from renovate/ansible-ansible-lint-26.x into master
Ansible Linter / ansible-lint (push) Successful in 33s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-07-02 18:33:16 +00:00
CSRBot
c5e66cd04a
chore(deps): update ansible/ansible-lint action to v26.6.0
Ansible Linter / ansible-lint (pull_request) Successful in 1m20s
Lint Markdown files / markdown-lint (pull_request) Successful in 11s
Lint Markdown files / markdown-lint (push) Successful in 11s
Ansible Linter / ansible-lint (push) Successful in 1m3s
2026-07-02 18:02:54 +00:00
CSRBot
fcc5ba6efa
Merge pull request 'chore(deps): update davidanson/markdownlint-cli2-action action to v23' ( #33 ) from renovate/davidanson-markdownlint-cli2-action-23.x into master
Ansible Linter / ansible-lint (push) Failing after 10s
Lint Markdown files / markdown-lint (push) Successful in 6s
2026-06-04 15:16:55 +00:00
CSRBot
dfc4688504
chore(deps): update davidanson/markdownlint-cli2-action action to v23
Lint Markdown files / markdown-lint (pull_request) Successful in 6s
Ansible Linter / ansible-lint (push) Successful in 32s
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (pull_request) Successful in 1m7s
2026-06-04 15:02:53 +00:00
CSRBot
0343b47905
Merge pull request 'chore(deps): update actions/checkout action to v6.0.3' ( #32 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Failing after 9s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-06-02 15:15:16 +00:00
CSRBot
4fc2c4ead9
chore(deps): update actions/checkout action to v6.0.3
Lint Markdown files / markdown-lint (push) Successful in 12s
Ansible Linter / ansible-lint (push) Successful in 26s
Ansible Linter / ansible-lint (pull_request) Successful in 27s
Lint Markdown files / markdown-lint (pull_request) Successful in 5s
2026-06-02 15:02:46 +00:00
CSRBot
da1c02abec
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.4.0' ( #31 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Failing after 8s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-04-14 11:06:37 +00:00
CSRBot
2ec3ab8117
chore(deps): update ansible/ansible-lint action to v26.4.0
Ansible Linter / ansible-lint (pull_request) Successful in 25s
Lint Markdown files / markdown-lint (pull_request) Successful in 6s
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (push) Successful in 1m40s
2026-04-14 10:48:14 +00:00
CSRBot
71d8b991e5
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.3.0' ( #30 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 54s
Lint Markdown files / markdown-lint (push) Successful in 12s
2026-03-05 14:06:23 +00:00
CSRBot
e94f04809b
chore(deps): update ansible/ansible-lint action to v26.3.0
Ansible Linter / ansible-lint (pull_request) Successful in 18s
Ansible Linter / ansible-lint (push) Successful in 18s
Lint Markdown files / markdown-lint (pull_request) Successful in 5s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-03-05 14:01:45 +00:00
CSRBot
a248f96436
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.2.0' ( #29 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 18s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-02-25 17:23:42 +00:00
CSRBot
7b5bb365c5
chore(deps): update ansible/ansible-lint action to v26.2.0
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (pull_request) Successful in 20s
Lint Markdown files / markdown-lint (pull_request) Successful in 6s
Ansible Linter / ansible-lint (push) Successful in 54s
2026-02-25 17:18:38 +00:00
CSRBot
bc059ab046
Merge pull request 'chore(deps): update actions/checkout action to v6.0.2' ( #28 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 17s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-22 17:09:29 +00:00
CSRBot
a2dc579d3f
chore(deps): update actions/checkout action to v6.0.2
Ansible Linter / ansible-lint (pull_request) Successful in 17s
Ansible Linter / ansible-lint (push) Successful in 19s
Lint Markdown files / markdown-lint (pull_request) Successful in 5s
Lint Markdown files / markdown-lint (push) Successful in 7s
2026-01-22 17:01:36 +00:00
CSRBot
3c9568be0d
Merge pull request 'chore(deps): update ansible/ansible-lint action to v26.1.1' ( #27 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-01-16 05:05:25 +00:00
CSRBot
14756c9c10
chore(deps): update ansible/ansible-lint action to v26.1.1
Ansible Linter / ansible-lint (pull_request) Successful in 16s
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (pull_request) Successful in 4s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-01-16 05:01:18 +00:00
CSRBot
6d7abcaa79
chore(deps): update ansible/ansible-lint action to v26
Ansible Linter / ansible-lint (pull_request) Successful in 17s
Lint Markdown files / markdown-lint (pull_request) Successful in 9s
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 10s
2026-01-11 23:01:10 +00:00
volker.raschek
161d72089e
fix(ci): add workflow dispatch for releases
Lint Markdown files / markdown-lint (push) Successful in 6s
Ansible Linter / ansible-lint (push) Successful in 55s
2026-01-11 21:16:09 +01:00
volker.raschek
58d25578d7
fix(ci): use dynamic github repository name
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-07 16:11:15 +01:00
volker.raschek
3af115d465
fix(ci): add release workflow
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-07 16:05:38 +01:00
volker.raschek
a8e2ba74ee
fix: replace deprecated INJECT_FACTS_AS_VARS
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-05 10:31:11 +01:00
volker.raschek
b946da2d8d
fix: replace deprecated INJECT_FACTS_AS_VARS
Ansible Linter / ansible-lint (push) Successful in 17s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-05 10:28:07 +01:00
CSRBot
79f34eb179
Merge pull request 'chore(deps): update ansible/ansible-lint action to v25.12.2' ( #25 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 5s
2025-12-22 20:05:03 +00:00
CSRBot
8b4aa30051
chore(deps): update ansible/ansible-lint action to v25.12.2
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (pull_request) Successful in 16s
Lint Markdown files / markdown-lint (pull_request) Successful in 5s
Ansible Linter / ansible-lint (push) Successful in 54s
2025-12-22 20:01:22 +00:00
CSRBot
75793805af
Merge pull request 'chore(deps): update ansible/ansible-lint action to v25.12.1' ( #24 ) from renovate/actions into master
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (push) Successful in 52s
2025-12-10 14:06:32 +00:00
CSRBot
a0eef04414
chore(deps): update ansible/ansible-lint action to v25.12.1
Ansible Linter / ansible-lint (push) Successful in 17s
Lint Markdown files / markdown-lint (push) Successful in 4s
Lint Markdown files / markdown-lint (pull_request) Successful in 4s
Ansible Linter / ansible-lint (pull_request) Successful in 54s
2025-12-10 14:01:25 +00:00
CSRBot
29f312ef07
Merge pull request 'chore(deps): update actions/checkout action to v6' ( #23 ) from renovate/actions-checkout-6.x into master
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (push) Successful in 5s
2025-12-02 21:08:42 +00:00
CSRBot
316c642cf4
chore(deps): update actions/checkout action to v6
Ansible Linter / ansible-lint (pull_request) Successful in 17s
Lint Markdown files / markdown-lint (pull_request) Successful in 8s
Lint Markdown files / markdown-lint (push) Successful in 9s
Ansible Linter / ansible-lint (push) Successful in 17s
2025-12-02 21:01:32 +00:00
CSRBot
e315f71fea
Merge pull request 'chore(deps): update ansible/ansible-lint action to v25.12.0' ( #22 ) from renovate/actions into master
Lint Markdown files / markdown-lint (push) Successful in 4s
Ansible Linter / ansible-lint (push) Successful in 55s
2025-12-02 17:05:27 +00:00
CSRBot
fc9dc7a034
chore(deps): update ansible/ansible-lint action to v25.12.0
Ansible Linter / ansible-lint (push) Successful in 16s
Lint Markdown files / markdown-lint (pull_request) Successful in 4s
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (pull_request) Successful in 56s
2025-12-02 17:01:17 +00:00
CSRBot
ea17bd56a5
Merge pull request 'chore(deps): update ansible/ansible-lint action to v25.11.1' ( #21 ) from renovate/actions into master
Ansible Linter / ansible-lint (push) Successful in 17s
Lint Markdown files / markdown-lint (push) Successful in 5s
2025-11-24 23:05:07 +00:00
CSRBot
dc4e741b85
chore(deps): update ansible/ansible-lint action to v25.11.1
Ansible Linter / ansible-lint (pull_request) Successful in 16s
Lint Markdown files / markdown-lint (pull_request) Successful in 4s
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (push) Successful in 56s
2025-11-24 23:01:37 +00:00
volker.raschek
6679f1602f
fix(lint): close bracket
Lint Markdown files / markdown-lint (push) Successful in 5s
Ansible Linter / ansible-lint (push) Successful in 55s
0.1.4
2025-11-23 16:21:40 +01:00
volker.raschek
6469d81fcf
fix: rename files to .yaml
Ansible Linter / ansible-lint (push) Failing after 17s
Lint Markdown files / markdown-lint (push) Successful in 4s
0.1.3
2025-11-23 16:19:51 +01:00
volker.raschek
f2dc0be80d
fix: prepare for INJECT_FACTS_AS_VARS
Lint Markdown files / markdown-lint (push) Successful in 4s
Ansible Linter / ansible-lint (push) Failing after 57s
0.1.2
2025-11-22 23:53:42 +01:00
CSRBot
39aa914832
Merge pull request 'chore(deps): update davidanson/markdownlint-cli2-action action to v21' ( #19 ) from renovate/davidanson-markdownlint-cli2-action-21.x into master
Ansible Linter / ansible-lint (push) Successful in 54s
Lint Markdown files / markdown-lint (push) Successful in 9s
2025-11-18 17:01:42 +00:00
CSRBot
3e6c7d3d8c
chore(deps): update davidanson/markdownlint-cli2-action action to v21
Ansible Linter / ansible-lint (push) Successful in 52s
Lint Markdown files / markdown-lint (push) Successful in 10s
Ansible Linter / ansible-lint (pull_request) Successful in 52s
Lint Markdown files / markdown-lint (pull_request) Successful in 10s
2025-11-17 20:01:11 +00:00