我的range
文件干扰了ansible,我在其中使用了许多缩写以简化登录服务器时的生活。
例如:
front:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx-int
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
paths:
- /
hosts:
- myhost.mydomain.cloud
tls: []
在我的ansible主机文件中,我有:
~/.ssh/config
这意味着当我运行ansible时,连接将失败,因为它将使用我的ssh配置文件并尝试连接到Host te*
HostName %h.example.com
User test
。
我知道我可以将ansible主机修改为te1,然后让ssh config添加域的其余部分,但是我知道我团队中的其他成员没有像我这样设置.ssh / config,所以这不是并不是真正的选择,而tbh是简单的方法,最终会给其他人带来麻烦。
是否有一种方法可以告诉它不要使用我的文件或其他[servers]
te1.exmaple.com
te2.example.com
文件?
答案 0 :(得分:1)
ssh -F 允许您指定“每个用户的备用配置文件”。
-F配置文件 指定备用的每用户配置文件。如果在命令行上给出了配置文件,则 系统范围的配置文件(/ etc / ssh / ssh_config)将被忽略。每个用户的默认配置 文件是〜/ .ssh / config。
在Ansible中,您可以通过ANSIBLE_SSH_ARGS对其进行配置。
例如,在ansible.cfg中,可以将其设置为适合您需要的任何文件。
[ssh_connection]
ssh_args = -F ...
或者,您可能想要创建一个单独的用户(例如 ansible-admin )来设置她的〜/ .ssh / config并使用它来运行ansible。
答案 1 :(得分:1)
您可以在ANSIBLE_SSH_ARGS
中使用ansible.cfg
parameter。必需的ssh参数是-F configfile
,其含义如下:
-F configfile
指定备用的每用户配置文件。如果一个 配置文件在系统范围内的命令行中给出 配置文件(/ etc / ssh / ssh_config)将被忽略。默认值 每个用户的配置文件为〜/ .ssh / config。
因此,您的ANSIBLE_SSH_ARGS
(其中包含ansible.cfg
中的默认值)将如下所示:
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -F /dev/null
答案 2 :(得分:1)
这最终对我有用。我将此添加到主机文件。
[all:vars]
ansible_ssh_common_args = '-F /dev/null'
感谢所有回答:)