gpt4 book ai didi

ssh - 在 Ansible 中将组的公共(public)变量放在哪里

转载 作者:行者123 更新时间:2023-12-02 14:11:58 25 4
gpt4 key购买 nike

我们有一些脚本可以帮助我们在 AWS 中设置具有多达 6 个 VM 的 VPC。现在我想登录到这些机器中的每一个。出于安全原因,我们只能通过 SSH 访问其中一个,然后通过隧道/代理连接到其他机器。所以在我们的 list 中,我们有 SSH 主机(我们称之为 Redcarpet)和其他一些主机(如 Elasticsearch、Mongodb 和 Worker)的 IP 地址:

#inventory/hosts

[redcarpet]
57.44.113.25

[services]
10.0.1.2

[worker]
10.0.5.77
10.0.1.200

[elasticsearch]
10.0.5.30

[mongodb]
10.0.1.5

现在我需要告诉每个组,除了 redcarpet 使用某些 SSH 设置。如果这些适用于所有组,我会将它们放在 inventory/group_vars/all.yml 中。 ,但现在我必须将它们放入:
  • inventory/group_vars/services.yml
  • inventory/group_vars/worker.yml
  • inventory/group_vars/elasticsearch.yml
  • inventory/group_vars/mongodb.yml

  • 这会导致重复。因此我想使用 includeinclude_vars包括一个或两个来自公共(public)文件的变量(例如 inventory/common.yml )。但是,当我尝试在上面的任何 group_var 文件中执行此操作时,它不会获取变量。使用多个组共有的变量的最佳做法是什么?

    最佳答案

    如果您想使用 group_vars 方法,我建议您添加另一个组,并将依赖组作为子组添加到该组。

    #inventory/hosts

    [redcarpet]
    57.44.113.25

    [services]
    10.0.1.2

    [worker]
    10.0.5.77
    10.0.1.200

    [elasticsearch]
    10.0.5.30

    [mongodb]
    10.0.1.5

    [redcarpet_deps:children]
    mongodb
    elasticsearch
    worker
    services

    现在您可以拥有一个名为 redcarpet_deps.yml 的 group_vars 文件。他们应该从那里拿起变量。

    关于ssh - 在 Ansible 中将组的公共(public)变量放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890344/

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