I have a playbook that creates a directory in Ansible Tower.
I have a survey with a multiple choice options to choose the permission for this folder.
The playbook is:
- name: Create a directory
hosts: localhost
become_user: root
tasks:
- name: Create directory
file:
path: /test
state: directory
mode: u={{ user_perm }},g={{ group_perm }},o={{ other_perm }}
owner: 'root'
group: 'root'
When I execute the template in Ansible Tower I have to specify in the survey, via a multiple choice, the parameters: r
, w
, x
. My intention is that I could combine this variables: rw
, r
, rx
.
After specifying the parameters in multiple choice the summary that Tower shows:
user_perm:
- r
group_perm:
- r
- w
other_perm:
- x
And the error message:
bad symbolic permission for mode: u=['r'], "gid": 0, "group": "root", "mode": "0750", "msg": "mode must be in octal or symbolic form""
Should I change the way the playbook handle variables?
CodePudding user response:
Since a valid set of permission matching your example would be
mode: u=r,g=rw,o=x
You can simply join your lists:
mode: >-
u={{ user_perm | join -}}
,g={{ group_perm | join -}}
,o={{ other_perm | join }}