我试图让我的主机使用合理的操作系统。 这是我使用的命令。
ansible my-host -i hosts.ini -m setup | grep ansible_os_family
这是我的主机文件看起来像。
[my-host] myhostvm.com ansible_ssh_pass=mypw ansible_ssh_user=root
然而,我得到这个消息:
“ansible_os_family”:“不适用”,
我也尝试运行这个。
ansible my-host -i hosts.ini -m setup | grep ansible_distribution
这是结果:
“ansible_distribution”:“NA”,“ansible_distribution_major_version”:“NA”,“ansible_distribution_release”:“NA”,“ansible_distribution_version”:“NA”,
有人可以向我解释为什么它不返回任何操作系统?
获取ansible_os_family值的Ansible代码位于lib / ansible / module_utils / facts.py中 。
如果目标系统的OS系列不包含在OS_FAMILY列表中,则需要修补Ansible代码以添加OS系列。 目前该列表包含:
OS_FAMILY = dict( RedHat = 'RedHat', Fedora = 'RedHat', CentOS = 'RedHat', Scientific = 'RedHat', SLC = 'RedHat', Ascendos = 'RedHat', CloudLinux = 'RedHat', PSBM = 'RedHat', OracleLinux = 'RedHat', OVS = 'RedHat', OEL = 'RedHat', Amazon = 'RedHat', XenServer = 'RedHat', Ubuntu = 'Debian', Debian = 'Debian', Raspbian = 'Debian', Slackware = 'Slackware', SLES = 'Suse', SLED = 'Suse', openSUSE = 'Suse', SuSE = 'Suse', SLES_SAP = 'Suse', Gentoo = 'Gentoo', Funtoo = 'Gentoo', Archlinux = 'Archlinux', Manjaro = 'Archlinux', Mandriva = 'Mandrake', Mandrake = 'Mandrake', Altlinux = 'Altlinux', Solaris = 'Solaris', Nexenta = 'Solaris', OmniOS = 'Solaris', OpenIndiana = 'Solaris', SmartOS = 'Solaris', AIX = 'AIX', Alpine = 'Alpine', MacOSX = 'Darwin', FreeBSD = 'FreeBSD', HPUX = 'HP-UX', openSUSE_Leap = 'Suse'
Ansible检查/etc/$OS-release来确定操作系统。 如果目标系统的OS系列位于OS_FAMILY列表中,则应检查/etc/$OS-release是否正确。