ACL RunDeck can be intuitive and take some time to get used to. For the sake of visibility, especially when you start writing ACL RunDeck policies, it is better to install only what is allowed to users, instead of denied access. Nothing is allowed by default, so you really need to add allow statements to give users access to resources.
RunDeck requires an ACL policy for both the application context and the "project" context. You specify read access to the project in the context of the application and get access to all tasks by name (in your case .* ) In the context of the project, but you also need to provide access to the read type of the job resource so that the tasks are visible. See the example below.
Useful Magazines
For troubleshooting RunDeck, I found the following useful logs:
tail -f /var/log/rundeck/{rundeck.log,service.log}
Testing ACL Policies
If you want to test specific user actions against your ACL files, you can use the rd-acl tool that is installed with RunDeck. For example, to verify that a member of the user group can read the restart some server task in the MYPROJECT project, you can do:
rd-acl test -p 'MYPROJECT' -g user -c project -j 'restart some server' -a read
See the rd-acl manual for details.
Read-Only ACL Example
Here is an example (tested on Rundeck 2.6.9-1 ) that should let someone in the user group access read everything on your RunDeck server:
context: application: rundeck description: "normal users will only have read permissions" for: project: - match: name: '.*' allow: [read] system: - match: name: '.*' allow: [read] by: group: user --- context: project: '.*' description: "normal users will only have read permissions" for: resource: - equals: kind: 'node' allow: [read,refresh] - equals: kind: 'job' allow: [read] - equals: kind: 'event' allow: [read] job: - match: name: '.*' allow: [read] node: - match: nodename: '.*' allow: [read,refresh] by: group: user
source share