gpt4 book ai didi

ansible - "ansible_ssh_common_args"变量可以用于库存文件中的不同子组吗?

转载 作者:行者123 更新时间:2023-12-05 05:09:40 26 4
gpt4 key购买 nike

我正在尝试从 2 个不同的 ProxyJumpHost 连接到 2 个主机。

例如:hostname1 只能通过 ProxyJumpHost1 访问hostname2 只能通过 ProxyJumpHost2 访问

当我为组单独提供“ansible_ssh_common_args”变量时,ansible 只选择一个 ProxyJumpHost 信息并尝试从那里连接两个主机。

我的库存 yaml 文件如下所示

all_nodes:
children:
preprod:
children:
PRE_CH:
vars:
ansible_ssh_common_args: '-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost1>"'
hosts:
hostname1:
ansible_host: <IP_Address>
hostname2:
ansible_host: <IP_Address>
PRE_NL:
vars:
ansible_ssh_common_args: '-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost1>"'
hosts:
hostname3:
ansible_host: <IP_Address>
hostname4:
ansible_host: <IP_Address>

我的期望是通过正确的 ProxyJumpHost 连接正确的主机。

但实际上它只需要一个 ProxyJumpHost 值并尝试通过它连接所有主机。

最佳答案

在你的例子中,两个变量是相同的

PRE_CH:
vars:
ansible_ssh_common_args: '-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost1>"'

PRE_NL:
vars:
ansible_ssh_common_args: '-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost1>"'

问:“例如,hostname1 只能通过 ProxyJumpHost1 访问 hostname2 只能通过 ProxyJumpHost2 访问。我希望通过正确的 ProxyJumpHost 连接正确的主机。”

A:为每个主机设置ansible_ssh_common_args

hosts:
hostname1:
ansible_host: <IP_Address>
ansible_ssh_common_args: '... {{ user }}@<ProxyJumpHost1>"'
hostname2:
ansible_host: <IP_Address>
ansible_ssh_common_args: '... {{ user }}@<ProxyJumpHost2>"'

问:“如果我有 2 个主机可以通过 ProxyJumpHost1 连接,另外 2 个主机可以通过 ProxyJumpHost2 连接,我将有 3 个主机通过 ProxyJumpHost1 和 3 个主机通过 ProxyJumpHost2”

A:例如(为了简单性和模块化)创建 list 文件 gates.ini 以及另外两个组 gate1gate2。在配置或命令行中将此文件添加到 list 中。从其他 list 文件中删除 ansible_ssh_common_args

[gate1]
hostname1
hostname2
hostname3
[gate1:vars]
ansible_ssh_common_args='-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost1>"'

[gate2]
hostname4
hostname5
hostname6
[gate2:vars]
ansible_ssh_common_args='-o ProxyCommand="sshpass -p {{ password }} ssh -W %h:%p -q {{ user }}@<ProxyJumpHost2>"'

关于ansible - "ansible_ssh_common_args"变量可以用于库存文件中的不同子组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395457/

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