为什么Ansible识别CentOS的ansible_os_family为Debian?它不属于RedHat家族吗?
Ansible 识别CentOS的
ansible_os_family为Debian的常见原因 - 系统标识文件被修改
部分定制化CentOS镜像会改动/etc/os-release、/etc/redhat-release等系统原生标识文件的内容。如果文件中存在Debian相关的标识字段(比如ID=debian、ID_LIKE=debian),Ansible的facts采集模块会优先匹配这些字段,错误将系统归类为Debian家族。你可以直接查看目标节点的上述标识文件内容,确认是否存在异常配置。 - 低版本Ansible的适配bug
旧版本Ansible对CentOS Stream、深度定制的CentOS衍生版的适配逻辑存在缺陷,会出现操作系统家族识别错误的问题。你可以执行ansible --version查看当前Ansible版本,升级到最新稳定版后重新采集facts验证问题是否复现。 - 自定义变量覆盖了默认采集值
如果目标节点的/etc/ansible/facts.d/目录下存在自定义facts配置文件,或者你的playbook/ inventory中通过set_fact等方式强制指定了ansible_os_family的值,会覆盖系统默认采集的结果。你可以执行ansible 目标节点主机名 -m setup -a "filter=ansible_os_family"单独采集该变量,确认是否为系统默认返回的结果。 - 目标节点Python环境异常
Ansible的facts采集依赖目标节点的Python环境进行系统信息识别,如果目标节点的Python被篡改,或者安装了Debian系定制的Python包,导致系统平台识别接口返回错误的信息,也会触发该异常。
内容的提问来源于stack exchange,提问作者Alex Alex
相关产品推荐
相关产品推荐

