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个空格 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)