【发布时间】:2020-10-13 14:21:09
【问题描述】:
我有一个要求,我需要在 Ansible 中使用 group_vars,但它不需要在同一路径上。基本上我的剧本在 SVN 中,每当我们想要部署时,我们实际上都会检查带有发布版本的最新剧本,然后进行部署。
实际执行部署的剧本具有这种结构 -
/home/ansible/myapp/ansible-myapp-release/deploy/ansible-myapp-5.80.0-05
- bin
- roles
- myapp-main.yml
- myapp-full-deployment.yml
- myapp-config.yml
我从 SVN 签出的另一件事是,它包含我的应用程序的配置,它不包含任何播放,对于不同的环境,如 preprod、prod、test 等,它可能会有所不同。
/home/ansible/myapp/ansible-myapp-release/configuration/5.80.0-05/preprod
- config
- group_vars
- preprod.yml
- inventory
- myapp
库存myapp -
[preprod]
myapp-preprod
现在,当我执行我的第一个剧本时,我想使用这个 group_vars,因为这是我的配置在 preprod.yml 中的位置,它将在运行时加载到 jinja 模板中。
我如何从这个path 使用这个inventory 和group_vars 或者我需要将这些文件夹从这里复制到原来的剧本root 目录,然后执行剧本?
如果有人可以就此提供建议,请告诉我。
文档说路径应该相对于您的库存存储位置 https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#organizing-host-and-group-variables
【问题讨论】:
-
如果我尝试像这样
/home/ansible/myapp/ansible-myapp-release/configuration/5.80.0-05/preprod/inventory/myapp定义inventory路径,那么它也不起作用。它给了我这个错误-msg: The task includes an option with an undefined variable. The error was: 'tomcat_symlink_path' is undefined这个变量实际上是在我的preprod.yml文件中定义的 -
将
group_vars移动到您的inventory目录中。完成。 -
@Zeitounator 这很简单。完美的。非常感谢:)
标签: ansible