- name: HP Comware command
hosts: DEV-Test
gather_facts: no
connection: local
tasks:
- name: display ip int brief passing in a list
comware_command:
command:
- display ip int brief
type: display
username: "{{ username }}"
password: "{{ password }}"
hostname: "{{ inventory_hostname }}"
register: int_ip_info
- name: set new vars
set_fact:
new_vars: "{{ int_ip_info.response }}"
- name: Build New Data(We Need)
set_fact:
relevant_lines: "{{ new_vars |select('match', '^(XGE|FGE)\\d+/\\d+.*$') | list }}"
- name: test
debug:
var: relevant_lines
- name: Build final Data
set_fact:
new_list: "{{ new_list | default([]) + [item.split()] }}"
loop: "{{ relevant_lines }}"
- name: Convert data to SQL insert format
set_fact:
insert_data: "{{ insert_data|default([]) + [ { 'dev_name': inventory_hostname , 'port': item[0], 'phy_state': item[1], 'pro_state': item[2], 'ip_addr': item[3], 'vpn': item[4] } ] }}"
loop: "{{ new_list }}"
- name: Insert DB
community.mysql.mysql_query:
login_host: localhost
login_user: root
login_password: zgyCloud2019!
login_db: ansible
query: "INSERT INTO ip_info (dev_name, port, phy_state, pro_state, ip_addr, vpn) VALUES ('{{ item.dev_name }}', '{{ item.port }}', '{{ item.phy_state }}', '{{ item.pro_state }}', '{{ item.ip_addr }}', '{{ item.vpn }}')"
loop: "{{ insert_data }}"
```yaml
PLAY [HP Comware command] *****************************************************************************************
TASK [display ip int brief passing in a list] ********************************************************************
[WARNING]: Module did not set no_log for password
changed: [DEV-Test]
TASK [set new vars] ***********************************************************************************************
ok: [DEV-Test]
TASK [Build New Data(We Need)] ************************************************************************************
ok: [DEV-Test]
TASK [test] *******************************************************************************************************
ok: [DEV-Test] => {
"relevant_lines": [
"FGE1/0/51 up up 10.136.91.102 -- [N0:HZ1-AY...\r",
"FGE1/0/52 up up 10.136.91.166 -- [N0:HZ1-AY...\r",
"FGE2/0/51 up up 10.136.91.106 -- [N0:HZ1-AY...\r",
"FGE2/0/52 up up 10.136.91.170 -- [N0:HZ1-AY...\r",
"XGE1/0/1 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/2 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/3 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/4 up down -- -- [N0:HZ1-AY...\r",
"XGE1/0/5 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/6 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/7 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/8 up up -- -- [N0:HZ1-AY...\r",
"XGE1/0/47 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/1 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/2 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/3 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/4 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/5 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/6 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/7 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/8 up up -- -- [N0:HZ1-AY...\r",
"XGE2/0/47 up up -- -- [N0:HZ1-AY...\r"
]
}
TASK [Build final Data] *******************************************************************************************
ok: [DEV-Test] => (item=FGE1/0/51 up up 10.136.91.102 -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=FGE1/0/52 up up 10.136.91.166 -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=FGE2/0/51 up up 10.136.91.106 -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=FGE2/0/52 up up 10.136.91.170 -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/1 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/2 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/3 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/4 up down -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/5 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/6 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/7 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/8 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE1/0/47 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/1 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/2 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/3 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/4 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/5 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/6 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/7 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/8 up up -- -- ) [N0:HZ1-AY...
ok: [DEV-Test] => (item=XGE2/0/47 up up -- -- ) [N0:HZ1-AY...
TASK [Convert data to SQL insert format] **************************************************************************
ok: [DEV-Test] => (item=['FGE1/0/51', 'up', 'up', '10.136.91.102', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['FGE1/0/52', 'up', 'up', '10.136.91.166', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['FGE2/0/51', 'up', 'up', '10.136.91.106', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['FGE2/0/52', 'up', 'up', '10.136.91.170', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/1', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/2', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/3', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/4', 'up', 'down', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/5', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/6', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/7', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/8', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE1/0/47', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/1', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/2', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/3', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/4', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/5', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/6', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/7', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/8', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
ok: [DEV-Test] => (item=['XGE2/0/47', 'up', 'up', '--', '--', '[N0:HZ1-AY...'])
TASK [Insert DB] **************************************************************************************************
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'FGE1/0/51', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '10.136.91.102', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'FGE1/0/52', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '10.136.91.166', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'FGE2/0/51', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '10.136.91.106', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'FGE2/0/52', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '10.136.91.170', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/1', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/2', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/3', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/4', 'phy_state': 'up', 'pro_state': 'down', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/5', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/6', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/7', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/8', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE1/0/47', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/1', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/2', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/3', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/4', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/5', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/6', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/7', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/8', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
changed: [DEV-Test] => (item={'dev_name': 'DEV-Test', 'port': 'XGE2/0/47', 'phy_state': 'up', 'pro_state': 'up', 'ip_addr': '--', 'vpn': '--'})
PLAY RECAP ********************************************************************************************************
DEV-Test : ok=7 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@localhost project]