我是Ansible的新手,因此这个问题对于更高级的用户来说可能看起来很愚蠢,我不确定是否可以做我正在问的问题,因为Ansibel在循环和条件方面非常有限。 / p>
我正在Virtual Connect交换机上执行任务,因此我只能使用原始模块。
我有以下STDOUT:
=========================================================================
Profile Port Network PXE/IP MAC Address Allocated Status
Name Boot Order Speed
(min-max)
=========================================================================
CLO01ES 1 CLO_355 UseBIOS/Au 00-17-A4-77-58-0 -- -- OK
X02 _1 to 0
-------------------------------------------------------------------------
CLO01ES 2 CLO_355 UseBIOS/Au 00-17-A4-77-58-0 -- -- OK
X02 _2 to 2
-------------------------------------------------------------------------
CLO01ES 3 Multipl UseBIOS/Au 00-17-A4-77-58-0 -- -- OK
X02 e to 4
Network
-------------------------------------------------------------------------
CLO01ES 4 Multipl UseBIOS/Au 00-17-A4-77-58-0 -- -- OK
X02 e to 6
Network
-------------------------------------------------------------------------
<omitted>
问题是STDOUT可能有多行,其中包含不同的配置文件,即我事先不知道行号或MAC地址。
我想要获得的是状态检查。如果个人资料CLO01ESX02
的网络名称为Multiple Network
两次,那么我想跳过该任务。
每当我谷歌搜索解析变量或STDOUT时,我都会得到基本答案。
这是可能的Ansible还是我被迫编写自定义脚本?
答案 0 :(得分:0)
任何原生的Ansible模块都无法直接完成,但使用shell命令应该可以解决问题。
- name: Check output
command: <your_command_here> | grep CLO01ESX02 | grep "Multiple Network" | wc -l
register: wc
failed_when: wc.stdout|int > 1