8.4. 在清单文件中声明变量的规则
字符串变量的值在引号中声明。例如:
pg_database='awx' pg_username='awx' pg_password='<password>'
在 :vars
部分中声明时,INII 值将解释为字符串。例如,var=FALSE
创建一个等于 FALSE
的字符串。与主机行不同,:vars
部分每行只接受一个条目,因此 =
后的所有内容都必须是条目的值。主机行接受每行多个 key=value
参数。因此,它们需要使用一种方式来指出空格是值的一部分而不是分隔符。包含空格的值可以加上引号(单引号或双引号)。如需更多信息,请参阅 Python shlex 解析规则。
如果 INI 清单中设置的变量值必须是特定的类型(如字符串或布尔值),则始终在任务中使用过滤器指定类型。在消耗变量时,请勿依赖 INI 清单中设置的类型。
注意
考虑将 YAML 格式用于清单源,以避免在变量的实际类型上产生混淆。YAML 清单插件会一致且正确处理变量值。
如果 Ansible 清单文件中的参数值包含特殊字符,如 #、{ 或 },则必须双重转义(用单引号和双引号包括该值)。
例如,要将 mypasswordwith#hashsigns
用作变量 pg_password
的值,在 Ansible 主机清单文件中请将其声明为 pg_password='"mypasswordwith#hashsigns"'
。