場景:Ansible配置100個IP節點該怎麼辦?
Ansible服務器:192.168.31.10
新節點:192.168.31.11-192.168.31.110
批量推送節點公鑰
1.生成公鑰
shh-keygen #全默認 無密碼
2.使用ssh-copy-id 以及sshpass工具
只要解決兩個問題:輸入yes以及密碼
vim ~/.ssh/config
StrictHostKeyChecking=no
UserKnownHostsFile=/dev/null
yum -y install sshpass
接下來就能通過一下命令推送公鑰了~
[root@qian1 .ssh]# sshpass -p '123456' ssh-copy-id root@192.168.31.20
3.運行下面的腳本就能批量的將公鑰複製到遠程主機中
#用戶名密碼相同時腳本
1 #!/bin/bash
2 for i in `seq 11 110`
3 do
4 sshpass -p'123456' ssh-copy-id root@192.168.31.$i
5 done
~
#密碼不同時
1.vim remote-hosts #記錄hosts 服務器名 密碼 ip
server1 192.168.31.20 123456
server2 192.168.31.21 02468x
2.編寫腳本
1 #!/bin/bash
2 # push public key to remote hosts
3 # creat a file(remote-hosts) for writing node's information
4 #
5 for i in `seq 2 100`
6 do
7 ip=$(awk -v va=$i 'NR==va{print $2}' /root/remote-hosts)
8 password=$(awk -v va=$i 'NR==va{print $3}' /root/remote-hosts)
9 echo $ip
10 sshpass -p$password ssh-copy-id -i root@$ip
11 done
~
配置hosts文件
vim /etc/ansible/hosts
#添加
[test]
192.168.31.[011:110]
3.驗證
ansible -m ping all