ansible批量修改dns
时间: 2023-09-19 20:09:23 浏览: 187
对于批量修改 DNS,你可以使用 Ansible 来自动化该过程。Ansible 是一种自动化工具,可以通过 SSH 连接到多个远程主机并执行任务。
以下是一个示例的 Ansible Playbook,用于批量修改 DNS:
```yaml
---
- name: Update DNS
hosts: dns_servers
become: yes
tasks:
- name: Update resolv.conf
lineinfile:
path: /etc/resolv.conf
regexp: '^nameserver'
line: 'nameserver new_dns_server'
notify: restart_dns
handlers:
- name: restart_dns
service:
name: systemd-resolved
state: restarted
```
在上面的示例中,我们首先定义了一个名为 "Update DNS" 的 Playbook。然后,我们指定 `hosts` 参数为 `dns_servers`,这是一个包含需要修改 DNS 的主机的主机组。
在任务部分,我们使用 `lineinfile` 模块来查找以 "nameserver" 开头的行,并将其替换为新的 DNS 服务器地址。你需要将 `new_dns_server` 替换为你想要设置的实际 DNS 服务器地址。
最后,在处理程序部分,我们定义了一个名为 "restart_dns" 的处理程序,它将重新启动 `systemd-resolved` 服务以应用新的 DNS 设置。
你可以将上述 Playbook 保存为一个 YAML 文件(例如 `update_dns.yaml`),然后使用以下命令运行它:
```bash
ansible-playbook update_dns.yaml
```
请确保你已经在运行 Ansible 时配置了正确的 SSH 访问凭据,并且 `dns_servers` 中的主机都可以通过 SSH 连接。
这只是一个简单的示例,你还可以根据需要进行更复杂的 DNS 修改操作。请参考 Ansible 文档以获取更多信息和示例。
阅读全文