ansible批量配置更改,免密配置

本文介绍了如何使用Ansible进行批量自动化配置,特别是在客户有100多台主机需要修改SSH默认端口的情况下。通过在三台测试机上演示,包括Ansible的yum安装,环境配置,以及设置主机免密登录,详细阐述了如何实现免密登录并进行批量部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible批量自动化配置文件修改
背景:客户100多台的主机修改ssh默认端口,ansible完成批量自动化更改
利用三台测试机演示
1.ansible软件yum安装
Ansible的yum源:
baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/7/x86_64/

[root@node1 ~]# yum -y install ansible

2.ansible环境配置

[root@node1 ansible]# pwd
/etc/ansible
[root@node1 ansible]# cat hosts 
[test]
172.20.0.247
172,20.0.249

3.主机免密登录

[root@node1 ansible]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/devop/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/devop/.ssh/id_rsa.
Your public key has been saved in /home/devop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+tABTIFKSJCoLiAGrUNz+ceW6ZYacpCIz6CJl/RvP0Y devop@node1
The key's randomart imag
### Ansible 配置远程服务器登录 SSH 钥认证 为了通过 Ansible 实现远程服务器的登录,可以通过以下方式完成基于 SSH钥认证配置: #### 1. **生成本地用户的 SSH 秘钥** 在 Ansible 控制节点上,为需要使用的用户生成一对 RSA 类型的 SSH 秘钥。如果已经存在秘钥,则无需重新生成。 ```bash ssh-keygen -t rsa ``` 此命令会在默认路径 `~/.ssh/` 下生成私钥 (`id_rsa`) 和公钥 (`id_rsa.pub`) 文件[^2]。 #### 2. **将公钥分发至目标主机** 利用 `ssh-copy-id` 命令或者手动编辑的方式,将控制节点上的公钥复制到目标主机的 `authorized_keys` 文件中。 使用 `ssh-copy-id` 方法: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@target_host ``` 这一步会自动将公钥追加到目标主机 `/home/user/.ssh/authorized_keys` 中,并设置正确的文件权限[^1]。 #### 3. **配置 Ansible Inventory** 创建或修改 Ansible 的 inventory 文件(通常位于 `/etc/ansible/hosts` 或指定自定义位置),添加目标主机信息。例如: ```ini [target_servers] server1 ansible_host=192.168.1.101 server2 ansible_host=192.168.1.102 ``` 确保每台目标主机都能被正确解析并通过 SSH 进行连接[^5]。 #### 4. **验证登录是否成功** 尝试从 Ansible 节点无码访问任意一台目标主机: ```bash ssh user@target_host ``` 如果没有提示输入码且能够顺利进入 Shell,则说明登录已配置成功[^3]。 #### 5. **批量部署登录 (可选方法)** 对于大规模环境下的多台设备管理,推荐采用 Playbook 自动化处理整个流程。下面是一个简单的 playbook 示例来实现这一需求: ```yaml --- - name: Configure passwordless SSH access across all servers hosts: target_servers gather_facts: no tasks: - name: Copy public key to remote server's authorized_keys file authorized_key: user: "{{ username }}" state: present key: "{{ lookup('file', '/path/to/local/public/key') }}" ``` 运行上述 playbook 后,所有列入 inventory 列表内的主机都将具备来自当前 Ansible 主机发起者的无码身份验证能力[^4]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弎肆兦㝋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值