【发布时间】:2017-10-31 06:55:06
【问题描述】:
我正在尝试使用 ansible (2.2.1.0) 来运行我编写的运行状况检查手册,其中有几个主机位于两个堡垒主机后面。
我有两个环境,dev 和 prod,每个环境有两个 SSH 密钥(它们是不同的)。每个环境都有一个堡垒主机,您需要先通过 SSH 连接它才能访问该环境中的任何其他主机。问题在于,ansible 似乎为堡垒主机使用了正确的 SSH 密钥,但对于堡垒箱后面的任何主机,它似乎恢复为 ~/.ssh/id_rsa。
我的hosts库存:
[jumpbox-dev]
DEV-BASTION ansible_ssh_host=XX.XX.XX.XX
[dev]
WEB1 ansible_ssh_host=10.0.0.1
WEB2 ansible_ssh_host=10.0.0.2
[jumpbox-prod]
PROD-BASTION ansible_ssh_host=YY.YY.YY.YY
[prod]
WEB3 ansible_ssh_host=10.0.0.1
WEB4 ansible_ssh_host=10.0.0.2
group_vars 下我有文件:
group_vars
- jumpbox-dev.yml
- dev.yml
- jumpbox-prod.yml
- prod.yml
我的 healthcheck.yml 是
---
- name: Ping all hosts
become: True
hosts:
- jumpbox-dev
- dev
gather_facts: yes
tasks:
- name: Ping
ping:
jumpbox-dev.yml 包含 ansible_ssh_private_key_file: /home/myUser/.ssh/id_rsa_dev,dev.yml 包含:ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q myUser@XX.XX.XX.XX"'
在 dev.yml 中指定 ansible_ssh_private_key_file 似乎被忽略了,但如果我将 id_rsa_dev 复制到我的 /home/myUser/.ssh 文件夹中的 id_rsa 中,所有请求都会成功。将-i /home/myUser/.ssh/id_rsa_dev 添加到代理命令似乎也无济于事。
我缺少一些配置吗?是否与我的目录结构有关(通过 github 问题表明它们可能相关)?
干杯!
【问题讨论】:
标签: ansible ansible-2.x