gpt4 book ai didi

variables - Ansible:检查变量是否等于字符串

转载 作者:行者123 更新时间:2023-12-02 19:08:42 30 4
gpt4 key购买 nike

我在命令行上传入了一个 ansible 变量,如下所示:

ansible-playbook -e environment=staging ansible/make_server.yml

我想根据环境的值加载我的角色中的一些变量。我尝试了很多不同的方法,例如:

- include_vars: staging_vars.yml
when: environment | staging

- include_vars: staging_vars.yml
when: "{{environment}} == "staging"

- include_vars: staging_vars.yml
when: "{{environment}} | match('staging')"

但似乎没有任何效果。我该怎么做?

详细信息:

  • 我使用的是 ansible 1.7.2

最佳答案

请小心名为 environment 的变量,它可能会导致问题,因为 Ansible 在内部使用它。我不记得它是否在文档中,但这里有一个邮件列表线程:

https://groups.google.com/forum/#!topic/ansible-project/fP0hX2Za4I0

我们使用一个名为stage的变量。

看起来你最终会连续得到一堆这样的东西:

- include_vars: testing_vars.yml
when: stage == "testing"
- include_vars: staging_vars.yml
when: stage == "staging"
- include_vars: production_vars.yml
when: stage == "production"

但您也可以只包含您的环境:

- include_vars: "{{ stage }}_vars.yml"

或者,在剧本级别使用vars_files:

vars_files:
- vars/{{ stage }}_vars.yml

关于variables - Ansible:检查变量是否等于字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335204/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com