Ansible 条件:检查元素的类型
我正在寻找一种语法来检查变量是否包含任何子元素或只是一个字符串。假设我有一个文件Ansible 条件:检查元素的类型,ansible,Ansible,我正在寻找一种语法来检查变量是否包含任何子元素或只是一个字符串。假设我有一个文件vars/myvars.yml myvars: { key1: { greeting: "hello" }, key2: { greeting: { en: "hi", fr: "bonjour" } } } 我正在寻找一个只接受字符串而不接受对象的条件。因此,在这种情况下,key1.greeting应该与条件匹配,但是key2.greeting应该而
vars/myvars.yml
myvars: {
key1: {
greeting: "hello"
},
key2: {
greeting: {
en: "hi",
fr: "bonjour"
}
}
}
我正在寻找一个只接受字符串而不接受对象的条件。因此,在这种情况下,key1.greeting应该与条件匹配,但是key2.greeting应该而不是
---
- name: test
vars_files:
- vars/myvars.yml
hosts: all
tasks:
- debug:
msg: "greeting is '{{ item.value.greeting }}'"
when: item.value.greeting ???is type string???
with_dict: "{{ myvars }}"
有什么想法吗?您可以使用:
对于字符串,您想要的类型可能是AnsibleUnicode
或unicode
,具体取决于您如何定义值
when: "item.value.greeting | type_debug == 'your_wanted_type'"