【问题标题】:Ansible vars at an inventory file level库存文件级别的 Ansible 变量
【发布时间】:2014-10-05 11:20:13
【问题描述】:

我知道我们可以为特定主机和特定组设置 var,我将如何在每个清单文件的基础上惯用地做同样的事情。

我有 3 个用于 dev/staging/prod 的库存文件。为这些环境设置变量的最佳方法是什么。示例将是舞台本身,设置为 /etc/environment 用于 rails 或 API 密钥等。

此时我每个 env 有 1 个主机,所以我可以将其设置为主机变量,但最终我无法扩展它.. 所以我认为必须有更好的方法?

【问题讨论】:

    标签: environment-variables ansible ansible-playbook


    【解决方案1】:

    如果我正确理解您的问题,您不确定如何对主机进行分组以及如何将变量(可能还有任务)应用于组。

    看看group_vars and host_vars。这对于覆盖默认值非常有用。这是一个例子:

    group_vars/all:
    MAX_MEMORY = 16gb
    
    group_vars/dev
    MAX_MEMORY = 2gb
    

    或者,您可以将“group variables”放入您的主机文件中。

    一般来说,我建议您拥有一本剧本;您在 dev/QA/production 上运行的配方应尽可能与生产相同。

    【讨论】:

    • 我可以为不同的库存文件设置不同的组变量吗?我很难理解为什么没有干净的方法来做环境变量。如果我尝试遵循最后一行,理想情况下,环境之间的差异仅在主机和其他环境变量中,至少在应用程序级别。也许您将组变量放入库存文件的最后一点是我正在寻找的。现在我想起来了.. 大多数这样的变量最终都是主机规​​范.. 不同环境的不同 LB 等等.. 也许这就是为什么这不那么常见..
    • 设置环境仍然是rails需要的东西,不确定用ansible做这件事的正确方法是什么..可能[all:vars]
    猜你喜欢
    • 2019-11-21
    • 2018-03-07
    • 1970-01-01
    • 2022-07-18
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    相关资源
    最近更新 更多