I want to create a directory as it is showed on example below:
- hosts: localhost
tasks:
- name: Find out if cne_env is empty
shell: '[[ ! -z "$CNE_vCNE" ]] && echo "Not empty" || echo "Empty"'
register: cne_env
- name: Print version
debug:
msg: "Environment: {{ cne_env.stdout }}"
- name: Create Directory to save logs
become: yes
file:
path: /var/log/dir_files_daemon_logs/
state: directory
mode: "0755"
owner: "cuser if {{ cne_env.stdout }} == 'Not empty' else adminusr"
group: "cuser if {{ cne_env.stdout }} == 'Not empty' else adminusr"
But, Always it creates dir with owner cuser instead of adminusr when it is empty. See output.
~]$ ansible-playbook main.yaml
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Find out if cne env is empty] ******************************************
changed: [localhost]
TASK [Print version] ***********************************************************
ok: [localhost] => {
"msg": "Environment: Empty"
}
TASK [Create Directory to save logs] *******************************************
fatal: [localhost]: FAILED! => {"changed": false, "gid": 1002, "group": "cuser", "mode": "0755", "msg": "chown failed: failed to look up user cuser if Empty == 'Not empty' else adminusr", "owner": "cuser", "path": "/var/log/dir_files_daemon_logs/", "secontext": "unconfined_u:object_r:var_log_t:s0", "size": 6, "state": "directory", "uid": 1001}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
How can I make these conditions effective?
owner: "cuser if {{ cne_env.stdout }} == 'Not empty' else adminusr"
group: "cuser if {{ cne_env.stdout }} == 'Not empty' else adminusr"