Ansible-python解释器的包装

时间:2019-01-23 16:48:55

标签: python dictionary yaml

Ansible使用YAML语法的主要是键-值对,其中每个值都可以

简单值(数字或字符串)

列表

一个键值对(嵌套)


锚定一个值,YAML中的类型转换只是一个预处理选项。


1)

从数据结构方面来看,

YAML语法是字典的字典吗?

2)

对于命令:ansible -m shell 'hostname' allansible是python解释器的包装器吗?采取多个命令行选项...

1 个答案:

答案 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解释程序的包装器是什么,您可能想澄清一下您实际想要做什么。通常,答案是