Назад | Перейти на главную страницу

Невозможно вернуть семейство ОС с помощью ansible_os_family

Я пытаюсь получить семейство ОС моей хост-машины, используя ansible. Я использую эту команду.

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 для получения значения для ansible_os_family в библиотека / ansible / module_utils / fact.py.

Если семейство ОС целевой системы не содержится в OS_FAMILY list, вам нужно будет исправить код Ansible, чтобы добавить семейство ОС. На данный момент список содержит:

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_FAMILY список вы должны проверить, если /etc/$OS-release правильно.