My ansible code looks like this,
¦ - name: Copying Archived File
¦ ¦ unarchive:
¦ ¦ ¦ src: "/home/user/{{ item }}"
¦ ¦ ¦ dest: "/home/user/someLocation"
¦ ¦ ¦ list_files: yes
¦ ¦ register: archive_contents
¦ ¦ loop: "{{ files_to_unarchive }}"
¦ - name: Print Directory Name
¦ ¦ debug:
¦ ¦ ¦ msg: "{{ archive_contents }}"
The output I am getting is,
ok: [serverName] => {
"msg": {
"changed": false,
"msg": "All items completed",
"results": [
{
"ansible_loop_var": "item",
"changed": false,
"dest": "/home/user/someLocation",
"failed": false,
"files": [
"6880880/",
"6880880/README.txt",
"6880880/opatch_generic.jar",
"6880880/version.txt"
],
"gid": 110,
"group": "oracle",
"handler": "ZipArchive",
"invocation": {
"module_args": {
"attributes": null,
"backup": null,
"content": null,
"creates": null,
"delimiter": null,
"dest": "/home/user/someLocation",
"directory_mode": null,
"exclude": [],
"extra_opts": [],
"follow": false,
"force": null,
"group": null,
"keep_newer": false,
"list_files": true,
"mode": null,
"owner": null,
"regexp": null,
"remote_src": false,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": "/var/tmp/ansible-tmp-1660003769.3-20299-226224112946024/source",
"unsafe_writes": false,
"validate_certs": true
}
},
"item": "XYZ.zip",
"mode": "0755",
"owner": "user",
"size": 21,
"src": "/var/tmp/ansible-tmp-1660003769.3-20299-226224112946024/source",
"state": "directory",
"uid": 110
}
]
}
}
I need to use the first value (directory name) from files:6880880 in another task. I tried msg: "{{ archive_contents['results'] }}" and "{{ archive_contents['results']['files'][0] }}" but getting error. I am fairly new to ansible. I think I am missing something.
Error when using archive_contents['results']['files'][0] ==> fatal: [serverName]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'list object' has no attribute 'files'\n\nThe error appears to be in '/home/user/ansibleScript.yml': line 46, 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 Directory Name\n ^ here\n"}
Can you please suggest how can I get the desired value?