linux - Register Variables in Loop in an Ansible Playbook -


i have 2 ansible tasks follows

  tasks:  - shell: ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'    register: var1  - debug: var=var1   - shell: ethtool -i {{ item }} | grep bus-info | cut -b 16-22    with_items: var1.stdout_lines    register: var2  - debug: var=var2 

which used list of interfaces in machine (linux) , bus address each. have 1 more task follows in tha same playbook

 - name: binding interfaces    shell: echo {{ item.item }}    with_flattened: var2.results    register: var3 

which expect iterate on value var2 , print bus numbers.

var2.results follows

"var2": {     "changed": true,     "msg": "all items completed",     "results": [         {             "changed": true,             "cmd": "ethtool -i br0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005778",             "end": "2015-04-14 20:29:47.122203",             "invocation": {                 "module_args": "ethtool -i br0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "br0:",             "rc": 0,             "start": "2015-04-14 20:29:47.116425",             "stderr": "",             "stdout": "",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp13s0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005862",             "end": "2015-04-14 20:29:47.359749",             "invocation": {                 "module_args": "ethtool -i enp13s0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp13s0:",             "rc": 0,             "start": "2015-04-14 20:29:47.353887",             "stderr": "",             "stdout": "0d:00.0",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp14s0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005805",             "end": "2015-04-14 20:29:47.576674",             "invocation": {                 "module_args": "ethtool -i enp14s0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp14s0:",             "rc": 0,             "start": "2015-04-14 20:29:47.570869",             "stderr": "",             "stdout": "0e:00.0",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp15s0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005873",             "end": "2015-04-14 20:29:47.875058",             "invocation": {                 "module_args": "ethtool -i enp15s0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp15s0:",             "rc": 0,             "start": "2015-04-14 20:29:47.869185",             "stderr": "",             "stdout": "0f:00.0",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp5s0f1: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005870",             "end": "2015-04-14 20:29:48.112027",             "invocation": {                 "module_args": "ethtool -i enp5s0f1: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp5s0f1:",             "rc": 0,             "start": "2015-04-14 20:29:48.106157",             "stderr": "",             "stdout": "05:00.1",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp5s0f2: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005863",             "end": "2015-04-14 20:29:48.355733",             "invocation": {                 "module_args": "ethtool -i enp5s0f2: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp5s0f2:",             "rc": 0,             "start": "2015-04-14 20:29:48.349870",             "stderr": "",             "stdout": "05:00.2",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp5s0f3: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005829",             "end": "2015-04-14 20:29:48.591244",             "invocation": {                 "module_args": "ethtool -i enp5s0f3: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp5s0f3:",             "rc": 0,             "start": "2015-04-14 20:29:48.585415",             "stderr": "",             "stdout": "05:00.3",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp9s0f0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005943",             "end": "2015-04-14 20:29:48.910992",             "invocation": {                 "module_args": "ethtool -i enp9s0f0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp9s0f0:",             "rc": 0,             "start": "2015-04-14 20:29:48.905049",             "stderr": "",             "stdout": "09:00.0",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i enp9s0f1: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005863",             "end": "2015-04-14 20:29:49.143706",             "invocation": {                 "module_args": "ethtool -i enp9s0f1: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "enp9s0f1:",             "rc": 0,             "start": "2015-04-14 20:29:49.137843",             "stderr": "",             "stdout": "09:00.1",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i lo: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005856",             "end": "2015-04-14 20:29:49.386044",             "invocation": {                 "module_args": "ethtool -i lo: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "lo:",             "rc": 0,             "start": "2015-04-14 20:29:49.380188",             "stderr": "cannot driver information: operation not supported",             "stdout": "",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i virbr0: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.005859",             "end": "2015-04-14 20:29:49.632356",             "invocation": {                 "module_args": "ethtool -i virbr0: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "virbr0:",             "rc": 0,             "start": "2015-04-14 20:29:49.626497",             "stderr": "",             "stdout": "",             "warnings": []         },         {             "changed": true,             "cmd": "ethtool -i virbr0-nic: | grep bus-info | cut -b 16-22",             "delta": "0:00:00.024850",             "end": "2015-04-14 20:29:49.901539",             "invocation": {                 "module_args": "ethtool -i virbr0-nic: | grep bus-info | cut -b 16-22",                 "module_name": "shell"             },             "item": "virbr0-nic:",             "rc": 0,             "start": "2015-04-14 20:29:49.876689",             "stderr": "",             "stdout": "",             "warnings": []         }     ] 

my objective value of stdout in each item above example ("stdout": "09:00.0") . tried giving

     - name: binding interfaces        shell: echo {{ item.item.stdout}}        with_flattened: var2.results #       with_indexed_items: var2.results        register: var3 

but not giving bus values in stdout correctly. appreciate in listing variable of variable value in task given below when second variable , indexed list. trying avoid direct index numbering such item[0] because number of interfaces dynamic , direct indexing may result in unexpected outcomes.

thanks

is you're looking for:

- hosts: localhost   tags: s21   gather_facts: no   vars:     images:       - foo       - bar   tasks:     - shell: "echo result-{{item}}"       register: "r"       with_items: "{{images}}"      - debug: var=r      - debug: msg="item.item={{item.item}}, item.stdout={{item.stdout}}, item.changed={{item.changed}}"       with_items: "{{r.results}}"      - debug: msg="gets printed if item changed - {{item}}"       when: "{{item.changed == true}}"       with_items: "{{r.results}}" 

source: register variables in with_items loop in ansible playbook


Comments

Popular posts from this blog

css - SVG using textPath a symbol not rendering in Firefox -

Java 8 + Maven Javadoc plugin: Error fetching URL -

order - Notification for user in user account opencart -