You need to enable JavaScript to run this app. 如何用Ansible Playbook基于ansible_facts输出RHEL 7.7 (x86_64)格式信息
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ansible Playbook基于ansible_facts输出RHEL 7.7 (x86_64)格式信息

RHEL系统信息格式化Ansible Playbook实现方案

实现逻辑

完全替代原Shell脚本的文本解析逻辑,直接基于Ansible内置Facts采集能力获取系统标准化属性,无需手动读取/etc/redhat-release做文本切割,通过变量拼接直接生成要求格式的输出:

  • 发行版名称适配:检测到目标主机为Red Hat系系统时,将Facts默认返回的RedHat替换为要求的RHEL前缀
  • 版本号取值:直接读取采集到的完整发行版版本号,无需拆分主、次版本字段再手动拼接
  • 架构取值:直接读取系统架构标识,和原脚本中uname -i的输出结果完全一致

完整Playbook代码

---
- name: 输出指定格式的目标主机系统信息
  hosts: <替换为你的目标主机组/目标主机地址>
  gather_facts: yes  # 显式开启系统信息采集,该配置默认为开启状态
  tasks:
    - name: 拼接格式化后的系统信息字符串
      ansible.builtin.set_fact:
        formatted_os_info: >-
          {{ (ansible_distribution == 'RedHat') | ternary('RHEL', ansible_distribution) }}
          {{ ansible_distribution_version }}
          ({{ ansible_architecture }})

    - name: 打印最终格式化结果
      ansible.builtin.debug:
        msg: "{{ formatted_os_info }}"

落地说明

  • 对x86_64架构的RHEL 7.7主机执行该Playbook,最终输出内容为RHEL 7.7 (x86_64),完全匹配任务要求的格式
  • 相比原Shell脚本的文本解析方案,该实现基于Ansible的标准化Facts采集能力,不会因为发行版描述文件的文本变动出现解析异常
  • 兼容所有受支持的RHEL大、小版本,不需要根据版本迭代调整解析规则

内容的提问来源于stack exchange,提问作者Praveen Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 05:24:04