【发布时间】:2020-04-02 16:25:09
【问题描述】:
我对 ansible 比较陌生,但我正在尝试将我的一些 python 脚本转换为 ansible 剧本,并且很难理解如何分配变量然后循环。我有一本运行 show vlan brief 的剧本:
---
- name: Get ARP information
hosts: all
gather_facts: false
tasks:
- name: show vlan brief
raw: "show vlan brief | i test"
register: vlan_output
- debug: var=vlan_output.stdout_lines
这给出了以下输出:
PLAY [Get ARP information] *****************************************************
TASK [show vlan brief] *********************************************************
changed: [sw1]
TASK [debug] *******************************************************************
ok: [sw1] => {
"vlan_output.stdout_lines": [
"100 test active Gi0/3, Gi0/1, Gi0/2",
"101 test2 active "
]
}
PLAY RECAP *********************************************************************
sw1 : ok=2 changed=1 unreachable=0 failed=0
我只想获取vlan号,在这种情况下是100和101,然后循环执行“show mac address table | inc VLAN_NUM”
我尝试在注册和调试行中添加拆分,但不断收到错误消息:
#split added
- debug: var=vlan_output.stdout_lines.split(' ')
#return error
"vlan_output.stdout_lines.split(\" \")": "VARIABLE IS NOT DEFINED!"
在 python 中,我将遍历项目并拆分字符串以获得我需要的内容。在 ansible 中,该过程的首选或等效是什么?
【问题讨论】: