gpt4 book ai didi

ssh - 如何忽略ansible SSH真实性检查?

转载 作者:行者123 更新时间:2023-12-03 04:24:09 29 4
gpt4 key购买 nike

有没有办法忽略 Ansible 进行的 SSH 真实性检查?例如,当我刚刚设置一个新服务器时,我必须对这个问题回答"is":

GATHERING FACTS ***************************************************************
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:yy:zz:....
Are you sure you want to continue connecting (yes/no)?

我知道这通常是一个坏主意,但我将其合并到一个脚本中,该脚本首先在我的云提供商处创建一个新的虚拟服务器,然后自动调用我的 ansible playbook 来配置它。我想避免脚本执行过程中的任何人为干预。

最佳答案

两个选项 - 第一个,正如您在自己的答案中所说,是设置环境变量 ANSIBLE_HOST_KEY_CHECKING为假。

设置它的第二种方法是将其放入 ansible.cfg 文件中,这是一个非常有用的选项,因为您可以全局设置它(在系统或用户级别,在 /etc/ansible/ansible.cfg~/.ansible.cfg 中),或者在与您正在运行的剧本相同的目录中的配置文件中。

为此,请创建 ansible.cfg文件位于这些位置之一,并包含以下内容:

[defaults]
host_key_checking = False

您还可以在那里设置许多其他方便的默认值,例如是否在游戏开始时收集事实、是否合并在多个位置声明的哈希值或用另一个位置替换一个哈希值,等等。有一个很大的选项列表here在 Ansible 文档中。

<小时/>

编辑:有关安全的说明。

SSH 主机 key 验证对于持久主机来说是一个有意义的安全层 - 如果您多次连接到同一台计算机,则在本地接受主机 key 很有值(value)。

对于生命周期较长的 EC2 实例,在初始创建实例时接受主机 key 并运行仅一次的任务是有意义的:

- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"

检查动态启动并在 playbook 执行后立即删除的实例上的主机 key 没有安全值(value),但检查持久计算机的主机 key 有安全值(value)。因此,您应该根据逻辑环境以不同的方式管理主机 key 检查。

  • 默认启用检查(在 ~/.ansible.cfg 中)
  • 在针对临时实例运行的 playbook 的工作目录中禁用主机 key 检查(./ansible.cfg 与针对 vagrant VM 的单元测试、短期 ec2 实例的自动化的 playbook 一起)

关于ssh - 如何忽略ansible SSH真实性检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297456/

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