Ansible使用YAML语法的主要是键-值对,其中每个值都可以
简单值(数字或字符串)
或
列表
或
一个键值对(嵌套)
锚定一个值,YAML中的类型转换只是一个预处理选项。
1)
从数据结构方面来看,
YAML语法是字典的字典吗?
2)
对于命令:ansible -m shell 'hostname' all
,ansible
是python解释器的包装器吗?采取多个命令行选项...
答案 0 :(得分:1)
从数据结构方面来看,
YAML语法是字典的字典吗?
不。 YAML语法为有向图建模。您最初给出的有关YAML的假设是错误的。在YAML中,值是三件事之一:
由于任何非标量值都可以包含其他非标量值,因此YAML可以表示任意深度的树-因此它不一定是词典的字典。
现在,YAML还允许在任何值上使用锚,并稍后通过别名引用该值:
anchored value: &anchor My value
alias: *anchor
此处,*alias
引用锚定标量值My value
。这可以用来定义循环图:
--- &root # this annotates the root sequence;
- one
- two # simple sequence items
- three
- *root # reference to the sequence, meaning that the sequence contains itself
请注意,序列和映射通常都是以YAML语法隐式开始的。如果子代是键/值对,则为映射(第一个示例);如果子项是列表项,则为序列(第二个示例)。 ---
开始文档,通常省略。
对于命令:ansible -m shell'hostname'全部,ansible是python解释器的包装吗?采取多个命令行选项...
请参见man page of the ansible command。您可能正在寻找-a ARGS
选项。我不确定您会认为Python解释程序的包装器是什么,您可能想澄清一下您实际想要做什么。通常,答案是否。