当我针对production
运行部署时,我需要跳过脚本中的一些步骤。
当一个剧本开始时,它总是需要一个环境(-i
选项),因此我可以查询信息以区分要采取的步骤。
这让我想问:
如何查询我正在运行剧本的环境?
作为替代方案,我可以提供额外的变量作为-e "env=prod"
之类的参数。但这是多余的,因为我已经使用-i
...
另一种选择是设置一个组environment
,将此环境的所有主机放在那里,并定义一个名为group_var
的{{1}}。但是将所有主机放在这个组中是有点过分了。
底线:我可以查询环境吗?还有其他选择我不考虑吗?
答案 0 :(得分:1)
来自Ansible文档中的Magic Variables:
同样可用,
inventory_dir
是持有Ansible库存主机文件的目录的路径名,inventory_file
是路径名和指向Ansible库存主机文件的文件名。
使用字符串操作从上面的变量中提取所需的信息(例如,路径中的最后一个段)。