You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible:如何基于RHEL版本控制RPM包安装,仅在RHEL7部署特定包

如何在Ansible中仅针对RHEL 7主机安装指定RPM包

当然可以实现,Ansible内置了系统版本相关的事实变量,直接用when条件就能精准控制任务只在RHEL 7上执行,不用手动解析/etc/redhat-release文件。

修改后的任务如下:

- name: install libselinux-python (only on RHEL 7)
  yum:
    name: libselinux-python
    state: present
  when: ansible_distribution_major_version == '7'

说明:

  • ansible_distribution_major_version是Ansible自动收集的系统事实变量,针对RHEL 7会返回字符串'7',RHEL 8则返回'8',用这个变量做判断最直接可靠。
  • 加上when条件后,这个安装任务只会在满足条件的主机上执行,RHEL 8主机会直接跳过该任务。

验证方式(可选)

如果想确认目标主机的系统版本变量值,可以先执行以下Ad-Hoc命令查看:

ansible <主机组/主机名> -m setup -a "filter=ansible_distribution_major_version"

比如针对RHEL 7主机,输出会类似:

xxx.example.com | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution_major_version": "7"
    },
    "changed": false
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:34:58