我可以在“hostvars”上使用什么 Ansible 过滤器来提取字符串?

我可以在“hostvars”上使用什么 Ansible 过滤器来提取字符串?
"{{ hostvars['DUMMY_HOST']['iosengineID'] }}"

值返回此

{'msg': [['80000009045B575A5032333331303055565D']], 'failed': False, 'changed': False} 

我可以使用哪个过滤器提取、打印或注册值?

80000009045B575A5032333331303055565D

答案1

的价值ios引擎ID是包含单个项目的列表,该列表是列表

iosengineID: [['80000009045B575A5032333331303055565D']]

你想要的是第一个列表中的第一个项目

    - debug:
        var: iosengineID.0.0

给出

  iosengineID.0.0: 80000009045B575A5032333331303055565D

答案2

我不得不在 hostvars 上使用这个疯狂的过滤器!!!

"{{ hostvars['DUMMY_HOST']['foundengineID'] | regex_replace('[^A-Za-z0-9]','') | replace('msg','') | replace('failedFalsechangedFalse','') }}"

然后它写入该值,以便我可以将其用作变量将其写入文件中:

80000009045B575A5032333331303055565D

相关内容