Ansible个人学习通过playbook实现批量免密

方法一:直接使用for循环操作拷贝

#指令
for i in `seq 61 63`
do
  ssh-copy-id -i /root/.ssh/id_rsa.pub user_name@192.168.31.$i
done

方法二:使用ansible-playbook实现

1、安装ansible

[root@~]# yum install epel-release -y
[root@~]# yum install ansible -y

2、修改ansible配置,没有修改可能会报如下错误

Using a SSH password instead of a key is not possible because Host Key checking is enabl ed and sshp

3、需要修改 ansible.cfg 配置

[root@~]# vi /etc/ansible/ansible.cfg

#host_key_checking = False
修改后:
host_key_checking = False

4、生成密钥

[root@~]# ssh-keygen -t rsa
[root@~]# cd ssh-playbook

5、修改hosts配置(各主机的密码均为root)

[root@ ssh-playbook]# vi hosts
修改 ssh[ssh:vars]字段

[ssh]
192.168.31.61
192.168.31.62
192.168.31.63

[ssh:vars]
ansible_ssh_user="root"
ansible_ssh_pass="root"

如果各主机密码不相同时使用如何配置

[ssh]
192.168.31.61 ansible_ssh_user="root" ansible_ssh_pass="root61"
192.168.31.62 ansible_ssh_user="root" ansible_ssh_pass="root62"
192.168.31.63 ansible_ssh_user="root" ansible_ssh_pass="root63"

6、ssh_key.yaml内容

[root@ ssh-playbook]# cat ssh_key.yaml
--- #标识
  - hosts: ssh
    tasks:
     - name: ssh-copy
       authorized_key: user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"  state=present

7、执行剧本

[root@ ssh-playbook]# ansible-playbook -i hosts ssh_key.yaml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值