解决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

就可以了

相关推荐
开源Linux4 天前
Ansible高频面试题详解:30个问题从入门到精通
ansible
我爱钱因此会努力6 天前
ansible实战-不同的用户登录不同的主机
linux·运维·服务器·ansible
我爱钱因此会努力6 天前
ansible实战- 关机
linux·运维·服务器·centos·自动化·ansible
运维李哥不背锅7 天前
Ansible 模块详解:高效管理你的 IT 基础设施
服务器·网络·ansible
K_i1347 天前
Ansible模块分类与实战应用指南
ansible
我爱钱因此会努力7 天前
ansible自动化运维入门篇
linux·运维·服务器·centos·自动化·ansible
zz-zjx7 天前
Ansible生产调优与故障排查全攻略
ansible
K_i1347 天前
Ansible自动化部署ECS与Nginx全流程
nginx·自动化·ansible
zz-zjx7 天前
生产级 Ansible 部署全流程-nginx示例
ansible
运维李哥不背锅7 天前
Ansible 的变量与模板:实现更灵活的自动化配置
java·自动化·ansible