TASK [what is postgres]
************************************************************************************************
ok: [localhost] => {
"postgres": {
"changed": false,
"msg": "All items completed",
"results": [
{
"ansible_loop_var": "item",
"changed": false,
"failed": false,
"invocation": {
"module_args": {
"checksum_algorithm": "sha1",
"follow": false,
"get_attributes": true,
"get_checksum": true,
"get_md5": false,
"get_mime": true,
"path": "/opt/db/data"
}
},
"item": "/opt/db/data",
"stat": {
"exists": false
}
}
],
"skipped": false
}
}
Walter
--
Walter Rowe, Division Chief
Infrastructure Services, OISM
Mobile: 202.355.4123
On Sep 6, 2023, at 8:51 AM, Rowe, Walter P. (Fed) <[email protected]> wrote:
You are using "loop". This places the results in a list called "results" (ie
postgres.results). Use the literal path in stat and you will get the reference
you seek in the debug task.
- name: Get stats of a file
ansible.builtin.stat:
path: /opt/db/data
register: postgres
- name: return ownership is right
ansible.builtin.debug:
msg: "owned by postgres"
when: postgres.stat.pw_name == 'postgres'
OR
- name: Get stats of a file
ansible.builtin.stat:
path: "{{ item }}"
register: postgres
loop:
- /opt/db/data
- name: return ownership is right
ansible.builtin.debug:
msg: "{{ item.item }} owned by postgres"
loop: "{{ postgres.results }}"
when:
- item.stat.exists == true
- item.stat.pw_name is defined
- item.stat.pw_name == 'postgres'
- name: return ownership is not right
ansible.builtin.debug:
msg: "{{ item.item }} owned not by postgres"
loop: "{{ postgres.results }}"
when:
- item.stat.exists == true
- item.stat.pw_name is defined
- item.stat.pw_name != 'postgres'
- name: return does not exist
ansible.builtin.debug:
msg: "{{ item.item }} does not exist"
loop: "{{ postgres.results }}"
when:
- item.stat.exists == false
Walter
--
Walter Rowe, Division Chief
Infrastructure Services, OISM
Mobile: 202.355.4123
On Sep 6, 2023, at 8:34 AM, dulhaver via Ansible Project
<[email protected]> wrote:
I want to check for existence of a folder and also the right owner, group and
mode.
When any of the conditions (exists, owner=postgres, group=postgres, mode=0755)
does not meet requirements I want to stop and be notified of the reason.
I think I need stat for that (exists, isdir, gr_name, pw_name, mode)
As a first step I try to get the value of pg_name with debug, but can not
figure out how to adress that value
- name: Get stats of a file
ansible.builtin.stat:
path: "{{ item }}"
register: postgres
loop:
- /opt/db/data
- name: return ownership is right
ansible.builtin.debug:
msg: "owned by postgres"
when: postgres.stat.pw_name == 'postgres'
output
TASK [show content of 'postgres']
************************************************************************************************************************************************
fatal: [dvzsn-rd5400.ref.eakte.rz-dvz.cn-mv.de]: FAILED! => {"msg": "The
conditional check 'postgres.stat.pw_name == 'postgres'' failed. The error was:
error while evaluating conditional (postgres.stat.pw_name == 'postgres'): 'dict
object' has no attribute 'stat'. 'dict object' has no attribute 'stat'\n\nThe
error appears to be in
'/home/gwagner/repos/automation_postgres/playbooks/check_postgres_dir.yml':
line 16, column 7, but may\nbe elsewhere in the file depending on the exact
syntax problem.\n\nThe offending line appears to be:\n\n\n - name: show content
of 'postgres'\n ^ here\n"}
what I am doing wrong?
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/1292803683.374335.1694003663225%40office.mailbox.org<https://groups.google.com/d/msgid/ansible-project/1292803683.374335.1694003663225%40office.mailbox.org?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/B337B96D-A8BB-4EAF-A1A4-C089C775A003%40nist.gov.