解决ansible批量加入新IP涉及known_hosts报错的问题

我们把一批新的IP加入到ansible的hosts文件,比如/etc/ansible/hosts,往往会有这样的提示,

因为本机的~/.ssh/known_hosts文件中并有fingerprint key串,使用ssh连接目标主机时,一般会提示是否将key字符串加入到~/.ssh/known_hosts文件中,若输入yes,则本机以后再次使用ssh连接目标主机时,不会弹出确认。于是,我们得一个个ssh目标主机,输入一个个yes,非常繁琐,这里提供一个批量操作的脚本。

bash 复制代码
yum -y install expect

vim group.exp

bash 复制代码
#!/usr/bin/expect
set timeout 2
spawn ssh -p 22 user@[lindex $argv 0]
expect {
  "sure" { send "yes\r"; exp_continue }
  "*#" { send "\r" }
}

然后 chmod a+x group.exp

bash 复制代码
for ip in `cat iplist`;do ./group.exp $ip;done

就可以了

相关推荐
傻啦猫@_@2 天前
如何使用ansible上的A用户操作其它服务上的B用户目录下的文件
ansible
Sweety丶╮7942 天前
【Ansible】将文件部署到受管主机知识点
云原生·ansible
Anthony_2313 天前
Ansible的 Playbook 模式详解
linux·运维·服务器·ansible
野奔在山外的猫3 天前
【教程】Ansible 环境部署
ansible
泡沫冰@3 天前
实施Ansible Playbook
ansible
鲸屿1955 天前
Ansible之playbook
服务器·网络·ansible
Sweety丶╮7946 天前
【Ansible】的介绍
云原生·ansible
知白守黑2676 天前
Ansible角色
运维·服务器·ansible
Sweety丶╮7947 天前
【Ansible】实施 Ansible Playbook知识点
服务器·云原生·ansible
YC运维8 天前
Ansible题目全解析与答案
java·算法·ansible