display information returned with debug in a more usable layout

92 views
Skip to first unread message

dulh...@mailbox.org

unread,
Jul 18, 2022, 12:15:34 PM7/18/22
to ansible...@googlegroups.com
I am trying to retreive information about installed versions of a package on a couple of hosts.
 
 
- name: check pgBackRest version
command: /usr/bin/pgbackrest version
register: backrest_version

- name: Print return information from the previous task
ansible.builtin.debug:
var: backrest_version
 
 
the output I am getting is already contains the information wanted but is not sufficiently handy format-wise.especially running on more then a handfull of hosts.
 
 
TASK [Print return information from the previous task] ***********************************************************************
ok: [step-0227] => {
"backrest_version": {
"changed": true,
"cmd": [
"/usr/bin/pgbackrest",
"version"
],
"delta": "0:00:00.008057",
"end": "2022-07-18 18:08:20.394231",
"failed": false,
"msg": "",
"rc": 0,
"start": "2022-07-18 18:08:20.386174",
"stderr": "",
"stderr_lines": [],
"stdout": "pgBackRest 2.39",
"stdout_lines": [
"pgBackRest 2.39"
]
}
}
 
To make this more scalable I am wondering to how to tweak this further so I can get a more usable kind of list or csv with only the concrete information needed like domainname & the version of my package in question. So what would be the direction to investigat in order to move towards the happyplace in this endeavour?

Vladimir Botka

unread,
Jul 18, 2022, 1:54:38 PM7/18/22
to dulhaver via Ansible Project
On Mon, 18 Jul 2022 18:15:19 +0200 (CEST)
dulhaver via Ansible Project <ansible...@googlegroups.com> wrote:

> ok: [step-0227] => {
> "backrest_version": {
> ...
> "stdout": "pgBackRest 2.39",

> ... get a more usable kind of list or csv with ... domainname & the
> version of my package in question.

Get versions and create dictionary *pkg*

ver: "{{ ansible_play_hosts|
map('extract', hostvars, ['backrest_version', 'stdout'])|
map('split', ' ')|map('last')|
list }}"
pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"

For example, given the data

ok: [test_11] =>
backrest_version.stdout: pgBackRest 2.39
ok: [test_12] =>
backrest_version.stdout: pgBackRest 2.40
ok: [test_13] =>
backrest_version.stdout: pgBackRest 2.41

you get the dictionary

pkg:
test_11: '2.39'
test_12: '2.40'
test_13: '2.41'

Write the CSV file

- copy:
dest: pkg.csv
content: |-
{% for k,v in pkg.items() %}
{{ k }},{{ v }}
{% endfor %}
delegate_to: localhost
run_once: true

You get

shell> cat pkg.csv
test_11,2.39
test_12,2.40
test_13,2.41

--
Vladimir Botka

dulh...@mailbox.org

unread,
Jul 20, 2022, 7:50:09 AM7/20/22
to ansible...@googlegroups.com
thx for the suggestions. I am sure they are grant, but I seem not to be at level to put them to work correctly yet.
So, would you mind to specify how to utilize those lines successfully?


my interpretation looked like this:

######### playbook #########################################
- hosts: all
vars:
ansible_user: gwagner

tasks:
- name: check pgBackRest version
ansible.builtin.command: /usr/bin/pgbackrest version
register: backrest_version

- name: Print return information from the previous task
ansible.builtin.debug:
var: backrest_version

- name: Get versions and create dictionary *pkg*
ver: "{{ ansible_play_hosts | map('extract', hostvars, ['backrest_version', 'stdout']) | map('split', ' ') | map('last') | list }}"
pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"

- name: Write the CSV file
copy:
dest: pkg.csv
content: |-
{% for k,v in pkg.items() %}
{{ k }},{{ v }}
{% endfor %}
delegate_to: localhost
run_once: true

#############################################################

so I split what you wrote (and which I somehow tried to interpret as playbook syntax) into 2 TASKS following what I had before. Surely the first of them is a bit odd due to not having any Ansible module defined

Ansible seems to neither be completely mad with this, nor completely happy


####### error ###############################################
play -vvv get_backrest_version.yml
ansible-playbook [core 2.12.2]
config file = /home/gwagner/repos/ansible_get_backrest_version/ansible.cfg
configured module search path = ['/home/gwagner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.8/site-packages/ansible
ansible collection location = /home/gwagner/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible-playbook
python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
jinja version = 2.10.3
libyaml = True
Using /home/gwagner/repos/ansible_get_backrest_version/ansible.cfg as config file
host_list declined parsing /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml as it did not pass its verify_file() method
script declined parsing /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml as it did not pass its verify_file() method
Parsed /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml inventory source with yaml plugin
ERROR! conflicting action statements: ver, pkg

The error appears to be in '/home/gwagner/repos/ansible_get_backrest_version/get_backrest_version.yml': line 20, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Get versions and create dictionary *pkg*
^ here
#############################################################




a second variant I tried was to incoporate your suggestions into the existing debug TASK

######### the playbook #########################################
- hosts: all
vars:
ansible_user: gwagner

tasks:
- name: check pgBackRest version
ansible.builtin.command: /usr/bin/pgbackrest version
register: backrest_version

- name: Print return information from the previous task
ansible.builtin.debug:
var: backrest_version
ver: "{{ ansible_play_hosts | map('extract', hostvars, ['backrest_version', 'stdout']) | map('split', ' ') | map('last') | list }}"
pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"

- name: Write the CSV file
copy:
dest: pkg.csv
content: |-
{% for k,v in pkg.items() %}
{{ k }},{{ v }}
{% endfor %}
delegate_to: localhost
run_once: true
#############################################################



######### the error #########################################
> play -vvv get_backrest_version.yml
ansible-playbook [core 2.12.2]
config file = /home/gwagner/repos/ansible_get_backrest_version/ansible.cfg
configured module search path = ['/home/gwagner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.8/site-packages/ansible
ansible collection location = /home/gwagner/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible-playbook
python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
jinja version = 2.10.3
libyaml = True
Using /home/gwagner/repos/ansible_get_backrest_version/ansible.cfg as config file
host_list declined parsing /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml as it did not pass its verify_file() method
script declined parsing /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml as it did not pass its verify_file() method
Parsed /home/gwagner/repos/ansible_get_backrest_version/inventory/hosts.yml inventory source with yaml plugin
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: get_backrest_version.yml **************************************************************************************************************
1 plays in get_backrest_version.yml

PLAY [all] *******************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
task path: /home/gwagner/repos/ansible_get_backrest_version/get_backrest_version.yml:3
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'echo ~gwagner && sleep 0'"'"''
<VM-0222.local> (0, b'/home/gwagner\n', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/gwagner/.ansible/tmp `"&& mkdir "` echo /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266 `" && echo ansible-tmp-1658316678.4410467-30842-175986333060266="` echo /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266 `" ) && sleep 0'"'"''
<VM-0222.local> (0, b'ansible-tmp-1658316678.4410467-30842-175986333060266=/home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266\n', b'')
<step-0227> Attempting python interpreter discovery
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'echo PLATFORM; uname; echo FOUND; command -v '"'"'"'"'"'"'"'"'python3.10'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.9'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.8'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.7'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.6'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.5'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/usr/bin/python3'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/usr/libexec/platform-python'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python2.7'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python2.6'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/us
r/bin/python'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python'"'"'"'"'"'"'"'"'; echo ENDFOUND && sleep 0'"'"''
<VM-0222.local> (0, b'PLATFORM\nLinux\nFOUND\n/usr/bin/python3.6\n/usr/bin/python3\n/usr/libexec/platform-python\nENDFOUND\n', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'/usr/bin/python3.6 && sleep 0'"'"''
<VM-0222.local> (0, b'{"platform_dist_result": ["redhat", "8.6", "Ootpa"], "osrelease_content": "NAME=\\"Red Hat Enterprise Linux\\"\\nVERSION=\\"8.6 (Ootpa)\\"\\nID=\\"rhel\\"\\nID_LIKE=\\"fedora\\"\\nVERSION_ID=\\"8.6\\"\\nPLATFORM_ID=\\"platform:el8\\"\\nPRETTY_NAME=\\"Red Hat Enterprise Linux 8.6 (Ootpa)\\"\\nANSI_COLOR=\\"0;31\\"\\nCPE_NAME=\\"cpe:/o:redhat:enterprise_linux:8::baseos\\"\\nHOME_URL=\\"https://www.redhat.com/\\"\\nDOCUMENTATION_URL=\\"https://access.redhat.com/documentation/red_hat_enterprise_linux/8/\\"\\nBUG_REPORT_URL=\\"https://bugzilla.redhat.com/\\"\\n\\nREDHAT_BUGZILLA_PRODUCT=\\"Red Hat Enterprise Linux 8\\"\\nREDHAT_BUGZILLA_PRODUCT_VERSION=8.6\\nREDHAT_SUPPORT_PRODUCT=\\"Red Hat Enterprise Linux\\"\\nREDHAT_SUPPORT_PRODUCT_VERSION=\\"8.6\\"\\n"}\n', b'')
Using module file /usr/lib/python3.8/site-packages/ansible/modules/setup.py
<VM-0222.local> PUT /home/gwagner/.ansible/tmp/ansible-local-30837ljymxh5t/tmp3uzfhh0g TO /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/AnsiballZ_setup.py
<VM-0222.local> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' '[VM-0222.local]'
<VM-0222.local> (0, b'sftp> put /home/gwagner/.ansible/tmp/ansible-local-30837ljymxh5t/tmp3uzfhh0g /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/AnsiballZ_setup.py\n', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'chmod u+x /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/ /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/AnsiballZ_setup.py && sleep 0'"'"''
<VM-0222.local> (0, b'', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' -tt VM-0222.local '/bin/sh -c '"'"'/usr/libexec/platform-python /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/AnsiballZ_setup.py && sleep 0'"'"''
<VM-0222.local> (0, b'\r\n{"ansible_facts": {"ansible_system": "Linux", "ansible_kernel": "4.18.0-372.9.1.el8.x86_64", "ansible_kernel_version": "#1 SMP Fri Apr 15 22:12:19 EDT 2022", "ansible_machine": "x86_64", "ansible_python_version": "3.6.8", "ansible_fqdn": "vm-414001-0222", "ansible_hostname": "vm-414001-0222", "ansible_nodename": "vm-414001-0222", "ansible_domain": "", "ansible_userspace_bits": "64", "ansible_architecture": "x86_64", "ansible_userspace_architecture": "x86_64", "ansible_machine_id": "11399171612e449da9ac1ad41bb91f51", "ansible_user_id": "gwagner", "ansible_user_uid": 3352, "ansible_user_gid": 100, "ansible_user_gecos": "Wagner,Gunnar,INA", "ansible_user_dir": "/home/gwagner", "ansible_user_shell": "/bin/bash", "ansible_real_user_id": 3352, "ansible_effective_user_id": 3352, "ansible_real_group_id": 100, "ansible_effective_group_id": 100, "ansible_apparmor": {"status": "disabled"}, "ansible_iscsi_iqn": "", "ansible_ssh_host_key_dsa_public": "AAAAB3NzaC1kc3MAAAC
BAIZ3IOzEIRs2Nud/w33kAqwNQJv0YYHtOmcdLzgazVbTLdrrLpRx3wrJWPDPbYF76FvixysFRYZC1UON52WUhhlO/k/wv8Hhs6HKS8+3BpBlZXgg7emi0Im8BmCC7lDTjHJ21LoEYBL8oR4xCdV76IFU9sRRfFnz0n2cJQCWMj61AAAAFQDpYZ4qsDFFNsRxzdO1XJ+Jh+J5gQAAAIBfx1q4EPzv2tlQ3mNI123Qj9yBhguEm9IajB9VB8BJz/gXe+wKH7KYAhHqW+0dLIiTS2zLPZ47MuBxe5PJU/yU1kNFJPupo7zfb0nH6SwHXQwvGq8NxgfSfIp+aSOqfTh09RiHSbkgHnimsDXNpeqkQHcID3OeGwlOoKuhjIkaWQAAAIAnn0HbeKP2XTVAVPp7cvy+unnSviycySiqGHYJ1gzJ5ck/u1tNX1zSXfT8PR6U2WEhueE+MeW+bsfxm9V6AV7ySrzWw0rTsICGUAlT5jE1g5o9e7c+4pViTTKafOfDof2/BcHj4a2Ncle4xeaWgiShTU3H5PDuvL+hYH5ry1OXYw==", "ansible_ssh_host_key_dsa_public_keytype": "ssh-dss", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC/Lyq2THTmLfS2UsTSjtKywm//ZgXKjl65ai+pHp4MKobc+AHZYNXV855g5EG/eKkCNB7h/1pM/ZLpcL5r0L/Ry9ClP1u6wqYG2mijKvlU1GO7ivmESIKoynKhigSqEGbESMBHH0QwAOc/e5u6VCNYa7ZmBOkImBME4YoslgeIEopot5bceZW36J5a6ycwPCNo7my5U/vW5z+pqGYbEfsIfqEk2f1SRYaurwcfJ52u2fcwzsmSdHBXe6kraxkvrln40fIV+7naYbEGvHiT4/EQWMhiFIeWJMR2T9ZlB/pPBaVGe+1xR7bRHlX
Qq0ZGDgO7+ZEs0o9zCzY8a9CU2rdh", "ansible_ssh_host_key_rsa_public_keytype": "ssh-rsa", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC3ES8KL4viouhqx31ohrz0NiUNDjwZ9mqiRVsBPeJ27yTvUxyqdI+kCfoiIQKK03/nNz+EhGX0lUe6iu+VPPEM=", "ansible_ssh_host_key_ecdsa_public_keytype": "ecdsa-sha2-nistp256", "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAINtZFwNdzUr3vYAH5MZm72lXL6pNioTUuljqyGdReKDD", "ansible_ssh_host_key_ed25519_public_keytype": "ssh-ed25519", "ansible_dns": {"search": ["step.zrz.dvz.cn-mv.de"], "nameservers": ["10.4.57.3", "10.4.57.1"]}, "ansible_is_chroot": false, "ansible_date_time": {"year": "2022", "month": "07", "weekday": "Mittwoch", "weekday_number": "3", "weeknumber": "29", "day": "20", "hour": "13", "minute": "31", "second": "19", "epoch": "1658316679", "epoch_int": "1658316679", "date": "2022-07-20", "time": "13:31:19", "iso8601_micro": "2022-07-20T11:31:19.356743Z", "iso8601": "2022-07-20T11:31:19Z", "iso8601_ba
sic": "20220720T133119356743", "iso8601_basic_short": "20220720T133119", "tz": "CEST", "tz_dst": "CEST", "tz_offset": "+0200"}, "ansible_virtualization_role": "guest", "ansible_virtualization_type": "VMware", "ansible_virtualization_tech_guest": ["VMware"], "ansible_virtualization_tech_host": [], "ansible_cmdline": {"BOOT_IMAGE": "/vmlinuz-4.18.0-372.9.1.el8.x86_64", "root": "/dev/mapper/vgsys-root", "ro": true, "crashkernel": "auto", "vconsole.keymap": "de", "vconsole.font": "latarcyrheb-sun16", "rhgb": true, "verbose": true, "rootflags": "uquota,gquota", "net.ifnames": "0", "ipv6.disable": "1", "transparent_hugepage": "never"}, "ansible_proc_cmdline": {"BOOT_IMAGE": "/vmlinuz-4.18.0-372.9.1.el8.x86_64", "root": "/dev/mapper/vgsys-root", "ro": true, "crashkernel": "auto", "vconsole.keymap": "de", "vconsole.font": "latarcyrheb-sun16", "rhgb": true, "verbose": true, "rootflags": "uquota,gquota", "net.ifnames": "0", "ipv6.disable": "1", "transparent_hugepage": "never"}, "ansible_proce
ssor": ["0", "GenuineIntel", "Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz"], "ansible_processor_count": 1, "ansible_processor_cores": 1, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 1, "ansible_processor_nproc": 1, "ansible_memtotal_mb": 1785, "ansible_memfree_mb": 288, "ansible_swaptotal_mb": 4095, "ansible_swapfree_mb": 4095, "ansible_memory_mb": {"real": {"total": 1785, "used": 1497, "free": 288}, "nocache": {"free": 1021, "used": 764}, "swap": {"total": 4095, "free": 4095, "used": 0, "cached": 0}}, "ansible_bios_date": "12/12/2018", "ansible_bios_vendor": "Phoenix Technologies LTD", "ansible_bios_version": "6.00", "ansible_board_asset_tag": "NA", "ansible_board_name": "440BX Desktop Reference Platform", "ansible_board_serial": "NA", "ansible_board_vendor": "Intel Corporation", "ansible_board_version": "None", "ansible_chassis_asset_tag": "No Asset Tag", "ansible_chassis_serial": "NA", "ansible_chassis_vendor": "No Enclosure", "ansible_chassis_version": "N/A"
, "ansible_form_factor": "Other", "ansible_product_name": "VMware Virtual Platform", "ansible_product_serial": "NA", "ansible_product_uuid": "NA", "ansible_product_version": "None", "ansible_system_vendor": "VMware, Inc.", "ansible_devices": {"dm-1": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-var", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RlQC2hqmtSaV9XVSYlEbYIzXA1ytRPcgq"], "uuids": ["60f9ef62-4738-486c-97ba-2c1f0a7f38d8"], "labels": ["VAR"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "host": "", "holders": []}, "dm-10": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-mysql", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RmVngNoxBZH1Bqt9EQTAbILwjxjA92Pwn"], "uuids": ["057d4300-8b84-4ddf-893c-8276db11c358"], "labels": ["MYSQL"], "masters": []}, "vendor": null, "mod
el": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "106496", "sectorsize": "512", "size": "52.00 MB", "host": "", "holders": []}, "dm-8": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-deploy", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RmE6ielw1FvT2h9zCL3qpBGABjMewdcpv"], "uuids": ["d74f17c7-1876-489a-bbb7-fb006cfbccca"], "labels": ["DEPLOY"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}, "sdb": {"virtual": 1, "links": {"ids": [], "uuids": [], "labels": [], "masters": []}, "vendor": "VMware", "model": "Virtual disk", "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rot
ational": "1", "scheduler_mode": "mq-deadline", "sectors": "20971520", "sectorsize": "512", "size": "10.00 GB", "host": "Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)", "holders": []}, "dm-6": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-custom", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RyaMg7VhL14uQeNS4Dc2PYFB2bdR1RkVp"], "uuids": ["0ff9090b-797f-4660-ae09-69d468466f93"], "labels": ["CUSTOM"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}, "dm-4": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-postgres", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RSS05k8c2qat6dS7DezHudnM8NWY8hGXo"], "uuids": ["d6d02e0d-3bf4-4357-9d37-1a332e66d154"], "labels": ["POSTGRES"], "masters": []}, "vendor": null, "model": null, "sas_address
": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "106496", "sectorsize": "512", "size": "52.00 MB", "host": "", "holders": []}, "sr0": {"virtual": 1, "links": {"ids": ["ata-VMware_Virtual_SATA_CDRW_Drive_00000000000000000001"], "uuids": [], "labels": [], "masters": []}, "vendor": "NECVMWar", "model": "VMware SATA CD00", "sas_address": null, "sas_device_handle": null, "removable": "1", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "mq-deadline", "sectors": "2097151", "sectorsize": "512", "size": "1024.00 MB", "host": "SATA controller: VMware SATA AHCI controller", "holders": []}, "dm-2": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-root", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RNDHXHstmbV07jlxOotWA1i6xG40NfXrN"], "uuids": ["99923fc2-fd8c-4989-842a-11886d6c61dd"], "labels": ["ROOT"], "masters": []}, "vendor": null, "model": null, "sas_address": nu
ll, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "13631488", "sectorsize": "512", "size": "6.50 GB", "host": "", "holders": []}, "dm-11": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-data", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RK3QSyEM9Tv3eKjRXiW9kusJUCBrih9wY"], "uuids": ["73a9b23b-060d-429a-a81b-cd988854f909"], "labels": ["DATA"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "106496", "sectorsize": "512", "size": "52.00 MB", "host": "", "holders": []}, "dm-0": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-swap", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RP5pcrzhy7d9X7g5epeow3U72wDsG9Kt1"], "uuids": ["8f70efea-4031-472a-9cf5-d69867d0f021"], "labels": [], "masters": []}, "vendor": null, "model": null, "sas_address": n
ull, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "8388608", "sectorsize": "512", "size": "4.00 GB", "host": "", "holders": []}, "dm-9": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-srv", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3ReEETZjdSvYIsoGbyapYOe3lQoDvC4suQ"], "uuids": ["0c254f40-c048-4a21-b0e2-f7c327173b50"], "labels": ["SRV"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}, "dm-7": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-tomcat", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RoD3EgzGgXV6J7MlVzbiVH7hqs4de6Tj9"], "uuids": ["aae9e74b-5e30-40c9-8791-bfb4834602bd"], "labels": ["TOMCAT"], "masters": []}, "vendor": null, "model": null, "sas_addre
ss": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}, "sda": {"virtual": 1, "links": {"ids": [], "uuids": [], "labels": [], "masters": []}, "vendor": "VMware", "model": "Virtual disk", "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {"sda2": {"links": {"ids": ["lvm-pv-uuid-zXuJ8c-4aI6-tA2T-jbeR-Cd7m-0n2x-ppVlph"], "uuids": [], "labels": [], "masters": ["dm-0", "dm-1", "dm-10", "dm-11", "dm-12", "dm-2", "dm-3", "dm-4", "dm-5", "dm-6", "dm-7", "dm-8", "dm-9"]}, "start": "2099200", "sectors": "39843840", "sectorsize": 512, "size": "19.00 GB", "uuid": null, "holders": ["vgsys-var", "vgsys-mysql", "vgsys-deploy", "vgsys-custom", "vgsys-postgres", "vgsys-root", "vgsys-data", "vgsys-swap", "vgsys-srv", "vgsys-tomcat", "vgsys-jboss", "vgsys-home", "vgsys-backup"]},
"sda1": {"links": {"ids": [], "uuids": ["a9c7e5c1-ee2f-4176-81ee-879dcfe1d682"], "labels": ["BOOT"], "masters": []}, "start": "2048", "sectors": "2097152", "sectorsize": 512, "size": "1.00 GB", "uuid": "a9c7e5c1-ee2f-4176-81ee-879dcfe1d682", "holders": []}}, "rotational": "1", "scheduler_mode": "mq-deadline", "sectors": "41943040", "sectorsize": "512", "size": "20.00 GB", "host": "Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)", "holders": []}, "dm-5": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-jboss", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RAWL3UMIqHK9GqRPqTg32siNNnughyQhP"], "uuids": ["60b345f6-c837-4e16-9b99-4ea01e5f85ae"], "labels": ["JBOSS"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}, "dm-3": {"virtual":
1, "links": {"ids": ["dm-name-vgsys-home", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RzDCxlPHQWxybQ0Vo7fWukFedvcdLWDZp"], "uuids": ["c1fb1dfa-a6b4-4522-b8f1-cd62ae7fca59"], "labels": ["HOME"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "106496", "sectorsize": "512", "size": "52.00 MB", "host": "", "holders": []}, "dm-12": {"virtual": 1, "links": {"ids": ["dm-name-vgsys-backup", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3ROrdxyZWW6Hcgs551lOXPw3oxQotYAQCK"], "uuids": ["9ee45f3c-aa8b-4d12-88d1-2c793d1f4c22"], "labels": ["BACKUP"], "masters": []}, "vendor": null, "model": null, "sas_address": null, "sas_device_handle": null, "removable": "0", "support_discard": "0", "partitions": {}, "rotational": "1", "scheduler_mode": "", "sectors": "40960", "sectorsize": "512", "size": "20.00 MB", "host": "", "holders": []}}, "ansible_d
evice_links": {"ids": {"dm-11": ["dm-name-vgsys-data", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RK3QSyEM9Tv3eKjRXiW9kusJUCBrih9wY"], "dm-12": ["dm-name-vgsys-backup", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3ROrdxyZWW6Hcgs551lOXPw3oxQotYAQCK"], "dm-10": ["dm-name-vgsys-mysql", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RmVngNoxBZH1Bqt9EQTAbILwjxjA92Pwn"], "dm-8": ["dm-name-vgsys-deploy", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RmE6ielw1FvT2h9zCL3qpBGABjMewdcpv"], "dm-9": ["dm-name-vgsys-srv", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3ReEETZjdSvYIsoGbyapYOe3lQoDvC4suQ"], "dm-7": ["dm-name-vgsys-tomcat", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RoD3EgzGgXV6J7MlVzbiVH7hqs4de6Tj9"], "dm-6": ["dm-name-vgsys-custom", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RyaMg7VhL14uQeNS4Dc2PYFB2bdR1RkVp"], "dm-5": ["dm-name-vgsys-jboss", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RAWL3UMIqHK9GqRPqTg32siNNnughyQhP"], "dm-4": ["dm-name-vgsys-postgres", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf
7ubMG1nfDliP3RSS05k8c2qat6dS7DezHudnM8NWY8hGXo"], "dm-2": ["dm-name-vgsys-root", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RNDHXHstmbV07jlxOotWA1i6xG40NfXrN"], "dm-3": ["dm-name-vgsys-home", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RzDCxlPHQWxybQ0Vo7fWukFedvcdLWDZp"], "dm-1": ["dm-name-vgsys-var", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RlQC2hqmtSaV9XVSYlEbYIzXA1ytRPcgq"], "dm-0": ["dm-name-vgsys-swap", "dm-uuid-LVM-RplvG9GBGSOAYgnEFf7ubMG1nfDliP3RP5pcrzhy7d9X7g5epeow3U72wDsG9Kt1"], "sr0": ["ata-VMware_Virtual_SATA_CDRW_Drive_00000000000000000001"], "sda2": ["lvm-pv-uuid-zXuJ8c-4aI6-tA2T-jbeR-Cd7m-0n2x-ppVlph"]}, "uuids": {"dm-11": ["73a9b23b-060d-429a-a81b-cd988854f909"], "dm-12": ["9ee45f3c-aa8b-4d12-88d1-2c793d1f4c22"], "dm-10": ["057d4300-8b84-4ddf-893c-8276db11c358"], "dm-8": ["d74f17c7-1876-489a-bbb7-fb006cfbccca"], "dm-9": ["0c254f40-c048-4a21-b0e2-f7c327173b50"], "dm-7": ["aae9e74b-5e30-40c9-8791-bfb4834602bd"], "dm-6": ["0ff9090b-797f-4660-ae09-69d468466f93"], "dm-
5": ["60b345f6-c837-4e16-9b99-4ea01e5f85ae"], "dm-4": ["d6d02e0d-3bf4-4357-9d37-1a332e66d154"], "dm-2": ["99923fc2-fd8c-4989-842a-11886d6c61dd"], "dm-3": ["c1fb1dfa-a6b4-4522-b8f1-cd62ae7fca59"], "dm-1": ["60f9ef62-4738-486c-97ba-2c1f0a7f38d8"], "dm-0": ["8f70efea-4031-472a-9cf5-d69867d0f021"], "sda1": ["a9c7e5c1-ee2f-4176-81ee-879dcfe1d682"]}, "labels": {"dm-11": ["DATA"], "dm-12": ["BACKUP"], "dm-10": ["MYSQL"], "dm-8": ["DEPLOY"], "dm-9": ["SRV"], "dm-7": ["TOMCAT"], "dm-6": ["CUSTOM"], "dm-5": ["JBOSS"], "dm-4": ["POSTGRES"], "dm-2": ["ROOT"], "dm-3": ["HOME"], "dm-1": ["VAR"], "sda1": ["BOOT"]}, "masters": {"sda2": ["dm-0", "dm-1", "dm-10", "dm-11", "dm-12", "dm-2", "dm-3", "dm-4", "dm-5", "dm-6", "dm-7", "dm-8", "dm-9"]}}, "ansible_uptime_seconds": 1128428, "ansible_mounts": [{"mount": "/", "device": "/dev/mapper/vgsys-root", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,usrquota,grpquota", "size_total": 6968836096, "size_available": 46
80204288, "block_size": 4096, "block_total": 1701376, "block_available": 1142628, "block_used": 558748, "inode_total": 3407872, "inode_available": 3351269, "inode_used": 56603, "uuid": "99923fc2-fd8c-4989-842a-11886d6c61dd"}, {"mount": "/srv", "device": "/dev/mapper/vgsys-srv", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", "size_total": 17469440, "size_available": 16314368, "block_size": 4096, "block_total": 4265, "block_available": 3983, "block_used": 282, "inode_total": 10240, "inode_available": 10227, "inode_used": 13, "uuid": "0c254f40-c048-4a21-b0e2-f7c327173b50"}, {"mount": "/opt/custom", "device": "/dev/mapper/vgsys-custom", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", "size_total": 17469440, "size_available": 16314368, "block_size": 4096, "block_total": 4265, "block_available": 3983, "block_used": 282, "inode_total": 10240, "inode_available": 10237, "inode_used": 3, "uuid":
"0ff9090b-797f-4660-ae09-69d468466f93"}, {"mount": "/home", "device": "/dev/mapper/vgsys-home", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", "size_total": 51023872, "size_available": 46485504, "block_size": 4096, "block_total": 12457, "block_available": 11349, "block_used": 1108, "inode_total": 26624, "inode_available": 26513, "inode_used": 111, "uuid": "c1fb1dfa-a6b4-4522-b8f1-cd62ae7fca59"}, {"mount": "/boot", "device": "/dev/sda1", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", "size_total": 1063256064, "size_available": 985153536, "block_size": 4096, "block_total": 259584, "block_available": 240516, "block_used": 19068, "inode_total": 524288, "inode_available": 523983, "inode_used": 305, "uuid": "a9c7e5c1-ee2f-4176-81ee-879dcfe1d682"}, {"mount": "/var", "device": "/dev/mapper/vgsys-var", "fstype": "xfs", "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noqu
ota", "size_total": 8579448832, "size_available": 7887077376, "block_size": 4096, "block_total": 2094592, "block_available": 1925556, "block_used": 169036, "inode_total": 4194304, "inode_available": 4191687, "inode_used": 2617, "uuid": "60f9ef62-4738-486c-97ba-2c1f0a7f38d8"}], "ansible_system_capabilities_enforced": "True", "ansible_system_capabilities": [""], "ansible_hostnqn": "", "ansible_distribution": "RedHat", "ansible_distribution_release": "Ootpa", "ansible_distribution_version": "8.6", "ansible_distribution_major_version": "8", "ansible_distribution_file_path": "/etc/redhat-release", "ansible_distribution_file_variety": "RedHat", "ansible_distribution_file_parsed": true, "ansible_distribution_file_search_string": "Red Hat", "ansible_os_family": "RedHat", "ansible_local": {}, "ansible_selinux_python_present": true, "ansible_selinux": {"status": "enabled", "policyvers": 33, "config_mode": "permissive", "mode": "permissive", "type": "targeted"}, "ansible_fips": false, "ansible
_python": {"version": {"major": 3, "minor": 6, "micro": 8, "releaselevel": "final", "serial": 0}, "version_info": [3, 6, 8, "final", 0], "executable": "/usr/libexec/platform-python", "has_sslcontext": true, "type": "cpython"}, "ansible_lsb": {}, "ansible_fibre_channel_wwn": [], "ansible_env": {"LS_COLORS": "rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=01;05;37;41:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;40:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.zst=38;5;9:*.tzst=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38
;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.wim=38;5;9:*.swm=38;5;9:*.dwm=38;5;9:*.esd=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.mjpg=38;5;13:*.mjpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.m4a=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg
=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.oga=38;5;45:*.opus=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:", "SSH_CONNECTION": "10.4.253.76 31046 10.4.253.107 22", "_": "/usr/libexec/platform-python", "LANG": "de_DE.UTF-8", "HISTTIMEFORMAT": "%h/%d - %H:%M:%S ", "S_COLORS": "auto", "which_declare": "declare -f", "XDG_SESSION_ID": "89", "USER": "gwagner", "SELINUX_ROLE_REQUESTED": "", "PWD": "/home/gwagner", "HOME": "/home/gwagner", "SSH_CLIENT": "10.4.253.76 31046 22", "SELINUX_LEVEL_REQUESTED": "", "HISTFILE": "/home/gwagner/.history/gwagner", "SSH_TTY": "/dev/pts/0", "SHELL": "/bin/bash", "TERM": "xterm-256color", "LC_MESSAGES": "en_US.UTF-8", "SELINUX_USE_CURRENT_RANGE": "", "SHLVL": "2", "LOGNAME": "gwagner", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/3352/bus", "XDG_RUNTIME_DIR": "/run/user/3352", "PATH": "/home/gwagner/.local/bin:/home/gwagner/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": "() { ( alias;\\n eval
${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@\\n}"}, "ansible_pkg_mgr": "dnf", "ansible_service_mgr": "systemd", "ansible_interfaces": ["lo", "eth0"], "ansible_eth0": {"device": "eth0", "macaddress": "00:50:56:aa:0a:99", "mtu": 1500, "active": true, "module": "vmxnet3", "type": "ether", "pciid": "0000:0b:00.0", "speed": 10000, "promisc": false, "ipv4": {"address": "10.4.253.107", "broadcast": "10.4.253.255", "netmask": "255.255.255.0", "network": "10.4.253.0"}}, "ansible_lo": {"device": "lo", "mtu": 65536, "active": true, "type": "loopback", "promisc": false, "ipv4": {"address": "127.0.0.1", "broadcast": "", "netmask": "255.0.0.0", "network": "127.0.0.0"}}, "ansible_default_ipv4": {"gateway": "10.4.253.1", "interface": "eth0", "address": "10.4.253.107", "broadcast": "10.4.253.255", "netmask": "255.255.255.0", "network": "10.4.253.0", "macaddress": "00:50:56:aa:0a:99", "mtu": 1500, "type": "ether", "alias": "eth0"}, "ansible_
default_ipv6": {}, "ansible_all_ipv4_addresses": ["10.4.253.107"], "ansible_all_ipv6_addresses": [], "gather_subset": ["all"], "module_setup": true}, "invocation": {"module_args": {"gather_subset": ["all"], "gather_timeout": 10, "filter": [], "fact_path": "/etc/ansible/facts.d"}}}\r\n', b'Shared connection to VM-0222.local closed.\r\n')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'rm -f -r /home/gwagner/.ansible/tmp/ansible-tmp-1658316678.4410467-30842-175986333060266/ > /dev/null 2>&1 && sleep 0'"'"''
<VM-0222.local> (0, b'', b'')
ok: [step-0227]
META: ran handlers

TASK [check pgBackRest version] *****************************************************************************************************************
task path: /home/gwagner/repos/ansible_get_backrest_version/get_backrest_version.yml:8
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'echo ~gwagner && sleep 0'"'"''
<VM-0222.local> (0, b'/home/gwagner\n', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/gwagner/.ansible/tmp `"&& mkdir "` echo /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313 `" && echo ansible-tmp-1658316679.9219108-30856-247143868002313="` echo /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313 `" ) && sleep 0'"'"''
<VM-0222.local> (0, b'ansible-tmp-1658316679.9219108-30856-247143868002313=/home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313\n', b'')
Using module file /usr/lib/python3.8/site-packages/ansible/modules/command.py
<VM-0222.local> PUT /home/gwagner/.ansible/tmp/ansible-local-30837ljymxh5t/tmp2xsnr7fu TO /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/AnsiballZ_command.py
<VM-0222.local> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' '[VM-0222.local]'
<VM-0222.local> (0, b'sftp> put /home/gwagner/.ansible/tmp/ansible-local-30837ljymxh5t/tmp2xsnr7fu /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/AnsiballZ_command.py\n', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'chmod u+x /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/ /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/AnsiballZ_command.py && sleep 0'"'"''
<VM-0222.local> (0, b'', b'')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' -tt VM-0222.local '/bin/sh -c '"'"'/usr/libexec/platform-python /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/AnsiballZ_command.py && sleep 0'"'"''
<VM-0222.local> (0, b'\r\n{"changed": true, "stdout": "pgBackRest 2.39", "stderr": "", "rc": 0, "cmd": ["/usr/bin/pgbackrest", "version"], "start": "2022-07-20 13:31:20.450249", "end": "2022-07-20 13:31:20.457764", "delta": "0:00:00.007515", "msg": "", "invocation": {"module_args": {"_raw_params": "/usr/bin/pgbackrest version", "_uses_shell": false, "warn": false, "stdin_add_newline": true, "strip_empty_ends": true, "argv": null, "chdir": null, "executable": null, "creates": null, "removes": null, "stdin": null}}}\r\n', b'Shared connection to VM-0222.local closed.\r\n')
<VM-0222.local> ESTABLISH SSH CONNECTION FOR USER: gwagner
<VM-0222.local> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="gwagner"' -o ConnectTimeout=10 -o 'ControlPath="/home/gwagner/.ansible/cp/69f4becdb3"' VM-0222.local '/bin/sh -c '"'"'rm -f -r /home/gwagner/.ansible/tmp/ansible-tmp-1658316679.9219108-30856-247143868002313/ > /dev/null 2>&1 && sleep 0'"'"''
<VM-0222.local> (0, b'', b'')
changed: [step-0227] => {
"changed": true,
"cmd": [
"/usr/bin/pgbackrest",
"version"
],
"delta": "0:00:00.007515",
"end": "2022-07-20 13:31:20.457764",
"invocation": {
"module_args": {
"_raw_params": "/usr/bin/pgbackrest version",
"_uses_shell": false,
"argv": null,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"stdin": null,
"stdin_add_newline": true,
"strip_empty_ends": true,
"warn": false
}
},
"msg": "",
"rc": 0,
"start": "2022-07-20 13:31:20.450249",
"stderr": "",
"stderr_lines": [],
"stdout": "pgBackRest 2.39",
"stdout_lines": [
"pgBackRest 2.39"
]
}

TASK [Print return information from the previous task] ******************************************************************************************
task path: /home/gwagner/repos/ansible_get_backrest_version/get_backrest_version.yml:12
fatal: [step-0227]: FAILED! => {
"msg": "The task includes an option with an undefined variable. The error was: 'ver' is undefined\n\nThe error appears to be in '/home/gwagner/repos/ansible_get_backrest_version/get_backrest_version.yml': line 12, 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: Print return information from the previous task\n ^ here\n"
}

PLAY RECAP ***************************************************************************************
step-0227 : ok=2 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

#############################################################

Vladimir Botka

unread,
Jul 20, 2022, 8:03:17 AM7/20/22
to Gunnar Wagner, ansible...@googlegroups.com
You're welcome. Put the declarations of *ver* and *pkg* into the
*vars*. I edited your code in-line


On Wed, 20 Jul 2022 13:48:40 +0200 (CEST)
Gunnar Wagner <gunnar...@mailbox.org> wrote:

> - hosts: all
> vars:
> ansible_user: gwagner
> ver: "{{ ansible_play_hosts|
> map('extract', hostvars, ['backrest_version', 'stdout'])|
> map('split', ' ')|map('last')|
> list }}"
> pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"
>
> tasks:
> - name: check pgBackRest version
> ansible.builtin.command: /usr/bin/pgbackrest version
> register: backrest_version
>
> - name: Print return information from the previous task
> ansible.builtin.debug:
> var: backrest_version.stdout
> when: debug|d(false)|bool
>
> - name: Write the CSV file
> ansible.builtin.copy:
> dest: pkg.csv
> content: |-
> {% for k,v in pkg.items() %}
> {{ k }},{{ v }}
> {% endfor %}
> delegate_to: localhost
> run_once: true

--
Vladimir Botka

dulh...@mailbox.org

unread,
Jul 20, 2022, 8:49:07 AM7/20/22
to ansible...@googlegroups.com

thnks, that worked (of course).

I try not to be embarrased too much for having someone spelling this outfor me like this :-).
Hopefully I'll be able to pay back to this list later down the road.

I see there is a lot to learn and understand yet (in this case "use of variables" for example).

Vladimir Botka

unread,
Jul 20, 2022, 1:29:54 PM7/20/22
to dulhaver via Ansible Project
On Wed, 20 Jul 2022 14:48:51 +0200 (CEST)
dulhaver via Ansible Project <ansible...@googlegroups.com> wrote:

> I see there is a lot to learn and understand yet (in this case "use
> of variables" for example).

There are a couple of aspects.

* It's good to know that in Ansible the variables are evaluated at
the last moment, aka "lazy evaluation".

* There are many places where you can declare variables. See
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

* Where would you like to use the variables? In your case, this is
probably the best question to ask when you want to decide where to
declare the variables. Put them into the playbook vars (above) if
you want to use them in the whole playbook. If you need the
variables to write the CSV file only put them into the task vars
(below)

- name: Write the CSV file
ansible.builtin.copy:
dest: pkg.csv
content: |-
{% for k,v in pkg.items() %}
{{ k }},{{ v }}
{% endfor %}
delegate_to: localhost
run_once: true
vars:
ver: "{{ ansible_play_hosts|
map('extract', hostvars,
['backrest_version','stdout'])|map('split', ' ')|
map('last')|
list }}"
pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"

This limits the scope of the variables. See
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#scoping-variables

* To make the code cleaner, you can put the variables into some files.
For example into the group_vars,

shell> cat group_vars/all
ansible_user: gwagner
ver: "{{ ansible_play_hosts|
map('extract', hostvars, ['backrest_version', 'stdout'])|
map('split', ' ')|map('last')|
list }}"
pkg: "{{ dict(ansible_play_hosts|zip(ver)) }}"
content: |-
{% for k,v in pkg.items() %}
{{ k }},{{ v }}
{% endfor %}

This will simplify the playbook

- hosts: all
tasks:
- name: check pgBackRest version
ansible.builtin.command: /usr/bin/pgbackrest version
register: backrest_version
- name: Write the CSV file
ansible.builtin.copy:
dest: pkg.csv
content: "{{ content }}"
Reply all
Reply to author
Forward
0 new messages