如何使用Ansible修改网络接口名称?含当前操作方案说明
如何用Ansible修改CentOS/RHEL系统的网络接口名称为eth0
下面是一套完整的Ansible实现方案,涵盖网卡配置文件修改、Grub参数调整,确保重启后网卡名称永久生效:
1. 复制并修改网卡配置文件
首先复制当前默认网卡的配置文件为ifcfg-eth0,再替换文件内的设备名称:
- name: 复制默认网卡配置文件为ifcfg-eth0 copy: remote_src: True src: '/etc/sysconfig/network-scripts/ifcfg-{{ ansible_default_ipv4.interface }}' dest: /etc/sysconfig/network-scripts/ifcfg-eth0 - name: 替换配置文件内的设备名称为eth0 replace: path: '/etc/sysconfig/network-scripts/ifcfg-eth0' regexp: "{{ ansible_default_ipv4.interface }}" replace: "eth0"
注:用
copy而非直接mv是为了保留原配置文件做备份,避免操作失误导致网络中断。
2. 修改Grub配置以禁用可预测网卡名称
要让网卡名称永久改为eth0,必须修改Grub内核启动参数,添加net.ifnames=0和biosdevname=0来关闭系统的可预测命名规则:
主任务配置
- name: 更新Grub配置文件中的内核启动参数 lineinfile: dest: "{{ grub_input_config }}" regexp: "GRUB_CMDLINE_LINUX" line: 'GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"' notify: 生成新的Grub配置
Handler定义(用于生成新的Grub配置)
--- - name: 生成新的Grub配置 command: "{{ grub_mkconfig_cmd }} -o {{ grub_output_config }}"
默认变量设置
把Grub相关路径定义为变量,方便适配不同系统版本:
grub_mkconfig_cmd: grub2-mkconfig grub_output_config: /boot/grub2/grub.cfg grub_input_config: /etc/default/grub
完成以上配置后,执行Ansible playbook,重启服务器后网卡名称就会永久变为eth0了。
内容的提问来源于stack exchange,提问作者willing_to_learn
相关产品推荐
相关产品推荐

