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
相关推荐
EndingCoder1 分钟前
箭头函数和 this 绑定
linux·前端·javascript·typescript
郑州光合科技余经理1 分钟前
架构解析:同城本地生活服务o2o平台海外版
大数据·开发语言·前端·人工智能·架构·php·生活
食咗未4 分钟前
Linux iptables工具的使用
linux·运维·服务器·驱动开发·网络协议·信息与通信
tech-share8 分钟前
【无标题】IOMMU功能测试软件设计及实现 (二)
linux·架构·系统架构·gpu算力
阿巴~阿巴~9 分钟前
从IP到MAC,从内网到公网:解密局域网通信与互联网连接的完整路径
服务器·网络·网络协议·架构·智能路由器·tcp·arp
AI科技星15 分钟前
电磁耦合常数Z‘的第一性原理推导与严格验证:张祥前统一场论的几何基石
服务器·人工智能·线性代数·算法·矩阵
时兮兮时16 分钟前
Linux 服务器后台任务生存指南
linux·服务器·笔记
一条破秋裤19 分钟前
数据中心能耗预测
服务器
dz小伟19 分钟前
从用户空间open()到驱动open()的完整调用链深度解析
linux
DeeplyMind22 分钟前
第4章: MMU notifier内核实现机制
linux·驱动开发·mmu·mmu notifier