Ansible Role修改IP地址与主机名

以下是基于Ansible Role修改IP地址与主机名的实现方法:

修改IP地址

  • 创建Role目录结构 :假设Role名为change_ip,目录结构如下:

    复制代码
    /etc/ansible/roles/change_ip
    ├── files
    ├── handlers
    │   └── main.yml
    ├── tasks
    │   └── main.yml
    ├── templates
    │   └── ifcfg-eth0.j2
    └── vars
        └── main.yml
  • 编写vars/main.yml文件:定义IP地址等相关变量,例如:

    复制代码
    ip_address: "192.168.1.100"
    netmask: "255.255.255.0"
    gateway: "192.168.1.1"
  • 编写templates/ifcfg-eth0.j2文件:创建网络配置文件模板,根据实际情况修改接口名称等:

    复制代码
    DEVICE=eth0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR={{ ip_address }}
    NETMASK={{ netmask }}
    GATEWAY={{ gateway }}
  • 编写tasks/main.yml文件 :使用template模块将模板文件渲染到目标主机的网络配置文件中,并重启网络服务:

    复制代码
    - name: Configure network interface
      template:
        src: ifcfg-eth0.j2
        dest: /etc/sysconfig/network-scripts/ifcfg-eth0
      notify: restart network
    - name: Restart network service
      service:
        name: network
        state: restarted
      when: ansible_os_family == "RedHat"
  • 编写handlers/main.yml文件:定义重启网络服务的handler:

    复制代码
    - name: restart network
      service:
        name: network
        state: restarted

修改主机名

  • 创建Role目录结构 :假设Role名为update_hostname,目录结构如下:

    复制代码
    /etc/ansible/roles/update_hostname
    ├── files
    ├── handlers
    │   └── main.yml
    ├── tasks
    │   └── main.yml
    ├── templates
    └── vars
        └── main.yml
  • 编写vars/main.yml文件:定义主机名变量,例如:

    复制代码
    hostname: "new_hostname"
  • 编写tasks/main.yml文件 :使用hostname模块修改主机名:

    复制代码
    - name: Set hostname
      hostname:
        name: "{{ hostname }}"
  • 编写handlers/main.yml文件:通常修改主机名不需要额外的handler。

调用Role

  • 创建启动Role的Playbook文件,例如change_config.yml

    复制代码
    - hosts: all
      become: yes
      roles:
        - change_ip
        - update_hostname
  • 执行Playbook:

    复制代码
    ansible-playbook change_config.yml
相关推荐
DO_Community7 小时前
裸金属 vs. 虚拟化 GPU 服务器:AI 训练与推理应该怎么选
运维·服务器·人工智能·llm·大语言模型
徐子元竟然被占了!!7 小时前
Linux的df和du
linux·运维·服务器
集大周杰伦7 小时前
Linux网络编程核心实践:TCP/UDP socket与epoll高并发服务器构建
linux·tcp/ip·网络编程·socket·字节序·套接字·i/o多路复用
科技峰行者7 小时前
华为发布Atlas 900 DeepGreen AI服务器:单机柜100PF算力重构AI训练基础设施
服务器·人工智能·华为·aigc·gpu算力
Mr. Cao code7 小时前
实战:Docker构建Haproxy负载均衡镜像
linux·运维·ubuntu·docker·容器·负载均衡
9ilk7 小时前
【基于one-loop-per-thread的高并发服务器】--- 项目介绍&&模块划分
运维·服务器·c++·后端·中间件
大聪明-PLUS7 小时前
3 个诊断 Linux 服务器的脚本
linux·嵌入式·arm·smarc
@木辛梓7 小时前
Linux 线程
linux·开发语言·c++
门前灯8 小时前
Linux系统之pkg-config 命令详解
linux·运维·服务器·pkg-config
fpcc8 小时前
C++编程实践——eventFD
linux·c++