在现代IT运维中,CentOS网络自动化已成为提升效率、减少人为错误的关键手段。尤其当面对数十甚至上百台服务器时,手动配置IP地址、网关、DNS等网络参数不仅耗时,还极易出错。本文将手把手教你如何利用 Ansible 这一轻量级自动化工具,在 CentOS 系统上实现高效、可靠的网络自动化运维。

Ansible 是一款开源的自动化工具,无需在目标主机上安装客户端(Agentless),仅依赖 SSH 即可完成远程操作。它使用 YAML 格式编写 Playbook(剧本),语法简洁易懂,非常适合新手入门。对于 CentOS批量配置网络任务,Ansible 提供了丰富的模块(如 nmcli、copy、template 等),能轻松应对各种场景。
假设你有一台控制机(Control Node)和若干台 CentOS 7/8 主机(Managed Nodes):
在控制机上安装 Ansible(以 CentOS 为例):
sudo yum install -y epel-releasesudo yum install -y ansibleansible --version # 验证安装创建一个名为 hosts 的文件,定义你的 CentOS 主机:
[centos_servers]192.168.1.10192.168.1.11192.168.1.12[centos_servers:vars]ansible_user=rootansible_ssh_pass=your_password # 建议使用SSH密钥更安全提示:生产环境中强烈建议配置 SSH 公钥认证,避免明文密码。
我们以配置静态 IP 为例。创建文件 network_setup.yml:
---- name: 配置 CentOS 网络接口 hosts: centos_servers become: yes vars: interface: eth0 ip_address: 192.168.1.{{ host_index }} netmask: 255.255.255.0 gateway: 192.168.1.1 dns_servers: - 8.8.8.8 - 114.114.114.114 tasks: - name: 使用 nmcli 设置静态 IP nmcli: type: ethernet conn_name: "{{ interface }}" ifname: "{{ interface }}" ip4: "{{ ip_address }}/24" gw4: "{{ gateway }}" dns4: "{{ dns_servers }}" state: present - name: 重启网络连接 nmcli: conn_name: "{{ interface }}" state: up注意:上述 Playbook 中使用了变量 host_index,你可以通过主机分组或 host_vars 为每台主机分配唯一 IP。更高级的做法是结合 Jinja2 模板动态生成配置。
在控制机上运行以下命令:
ansible-playbook -i hosts network_setup.ymlAnsible 将自动连接所有 CentOS 主机,应用网络配置,并输出执行结果。整个过程通常只需几秒钟!
对于更复杂的场景(如多网卡、VLAN、Bonding),可使用 template 模块配合 Jinja2 模板生成 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。
创建模板文件 templates/ifcfg-eth0.j2:
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=eth0UUID={{ uuid }}DEVICE=eth0ONBOOT=yesIPADDR={{ ip_address }}NETMASK=255.255.255.0GATEWAY={{ gateway }}DNS1={{ dns_servers[0] }}DNS2={{ dns_servers[1] }}然后在 Playbook 中使用:
- name: 复制网络配置模板 template: src: templates/ifcfg-eth0.j2 dest: /etc/sysconfig/network-scripts/ifcfg-eth0 owner: root group: root mode: '0644'- name: 重启网络服务 service: name: network state: restarted通过本文,你已经掌握了如何使用 Ansible 实现 Linux网络管理脚本 自动化,快速完成 CentOS 主机的批量网络配置。这不仅节省了大量时间,还显著提升了系统的一致性和可靠性。
记住,自动化不是一次性的任务,而是一种持续优化的运维文化。随着你对 Ansible 的深入使用,可以将其扩展到软件部署、安全加固、日志收集等更多领域。
现在就动手试试吧!让 CentOS网络自动化 成为你运维工作的得力助手。
本文由主机测评网于2025-12-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126340.html