ansible批量管理主机免密

1. 安装ansible

1
# yum install -y ansible

  

2. 创建hosts文件,将所有需要被管理的主机的IP地址都写到文件中

1
2
3
4
5
vim /etc/ansible/hosts
 
[all]
192.168.8.157
192.168.8.159

  

3. 使用ansible-keyscan扫描所有机器的密钥写入~/.ssh/known_hosts中,相当于ssh远程的时候不需要输入 yes

1
2
3
4
for i in `cat /etc/ansible/hosts`
do
    ssh-keyscan $i >> ~/.ssh/known_hosts
done

  

4. 编写剧本

1
2
3
4
5
6
7
8
9
10
# vim authkey.yml
---
- name: Set authorized key took from file
  hosts: all
  tasks:
  - name: set ssh key
    authorized_key:
      user: root
      state: present
      key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"

  

5. 检查剧本,看是否有语法报错

1
2
3
[root@host-192-168-8-155 ~]# ansible-playbook --syntax-check /etc/ansible/authkey.yml
 
playbook: /etc/ansible/authkey.yml

  

6. 执行剧本,输入密码,批量免密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ansible-playbook /etc/ansible/authkey.yml -k
SSH password:
 
PLAY [Set authorized key taken from file] ************************************************************************************************************************************************************************
 
TASK [Gathering Facts] *******************************************************************************************************************************************************************************************
ok: [192.168.8.159]
ok: [192.168.8.157]
 
TASK [set ssh key] ***********************************************************************************************************************************************************************************************
changed: [192.168.8.157]
changed: [192.168.8.159]
 
PLAY RECAP *******************************************************************************************************************************************************************************************************
192.168.8.157              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
192.168.8.159              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

  

7. 测试

1
2
3
4
ssh 192.168.8.157
ssh 192.168.8.159
 
免密登陆成功

  

 

playbook语法用的是yaml,为了方便书写,设置vim为如下格式,方便快速缩进

1
2
3
4
5
[root@room8pc16 myansi]# vim ~/.vimrc
set ai # 自动缩进
set ts=4 # 按tab键缩进4个空格
set et # 将tab键转换成空格
autocmd FileType yaml setlocal sw=2 ts=2 et ai   # 编辑yaml结尾的文件时,一个tab缩进2个空格

  



posted @   江戸川のコナン  阅读(369)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
……
点击右上角即可分享
微信分享提示