Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible突然将svr4pkg用作yum的后端_Ansible_Yum_Ansible Facts - Fatal编程技术网

Ansible突然将svr4pkg用作yum的后端

Ansible突然将svr4pkg用作yum的后端,ansible,yum,ansible-facts,Ansible,Yum,Ansible Facts,声明的任务如下: --- - hosts: all vars: tasks: - name: install package yum: name: ntp state: present 运行以下命令: ansible playbook test.yml-i localhost,-connection=local-vv 接收错误消息: TASK [install package] *******************************

声明的任务如下:

---
- hosts: all
  vars:
  tasks:

  - name: install package
    yum:
        name: ntp
        state: present
运行以下命令:

ansible playbook test.yml-i localhost,-connection=local-vv 接收错误消息:

TASK [install package] ***************************************************************************************************************************************************
task path: /home/osuser/dod/test.yml:6
Using module file /usr/lib/python2.7/site-packages/ansible/modules/system/setup.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: osuser
<localhost> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
Running svr4pkg as the backend for the yum action plugin
Using module file /usr/lib/python2.7/site-packages/ansible/modules/packaging/os/svr4pkg.py
<localhost> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
fatal: [localhost]: FAILED! => {
    "ansible_facts": {
        "pkg_mgr": "svr4pkg"
    },
    "changed": false,
    "invocation": {
        "module_args": {
            "category": false,
            "name": "ntp",
            "proxy": null,
            "response_file": null,
            "src": null,
            "state": "present",
            "zone": "all"
        }
    },
    "msg": "src is required when state=present",
    "name": "ntp"

任何关于原因和如何实施ansible_pkg_mgr的线索?

此发行版似乎是随yum和svr4pkg一起提供的,如下所示:

$ll/usr/bin/yum -rwxr-xr-x。1根根801根2018年11月5日/usr/bin/yum $ll/usr/sbin/pkgadd -rwxr-xr-x。1根207342年7月2日16:12/usr/sbin/pkgadd 因此,最后一个可用的已解析包管理器将保留并优先于/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/pkg_mgr.py

一份目录。如果平台上有多个 软件包管理器,将首选的放在最后。如果有 ansible模块,将其用作“name”键的值。 PKG_MGRS=[{'path':'/usr/bin/yum','name':'yum'}, {'path':'/usr/bin/dnf','name':'dnf'}, {'path':'/usr/bin/apt get','name':'apt'}, {'path':'/usr/sbin/pkgadd','name':'svr4pkg'}, [...] def collectself,模块=无,收集的事实=无: 事实_dict={} 收集的事实=收集的事实或{} 包装经理姓名='未知' 对于包装中的包装,包装经理: 如果os.path.existspkg['path']: 包装经理姓名=包装['name'] 使用多个包管理器时处理发行版系列默认值 如果已安装,ansible_事实条目应为默认软件包 发行版提供的经理。 如果收集的事实['ansible\u os\u family']==RedHat: 如果包装经理姓名不在“yum”、“dnf”中: 包装经理姓名=自我检查版本包装经理姓名、收集的事实 [...] 事实说明['pkg\u mgr']=pkg\u mgr\u姓名 返回事实 因此,这似乎是ansible上的一个未经处理的案例


但是,我仍然不知道如何强制执行正确的值!

通过升级到Ansible 2.8+修复


查看系统上何时有多个程序包管理器可用。

您的实际错误绝对不可能与示例任务相关。Yum模块是…..Yum模块。虽然我不太确定,但使用不可知程序包模块的任务最终可能会出现这种情况。在我看来,您的剧本/角色中有一个基于包含的on目标操作系统,检测出现问题,或者是在Solaris变量中强制执行的。这与ansible无关,而是与您的清单或代码有关。您应该检查那里的更改。使用-vvv运行ansible可能会给您一些线索,说明此任务的确切来源。好吧。我坚持……这就是发生的情况!请注意,当我使用use_ba时ckend:yum错误消失了…这证明在文件/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/pkg_mgr.py中计算出的pkg_mgr_名称有点错误,或者在其他地方被覆盖了!我的道歉:yum模块可以有效地选择后端。但srv4pkg不是其中之一,这就是失败的原因。因此,要么您的服务器失败了在他的ansible_pkg_mgr事实中错误地报告了这一点,您必须找出原因,或者有人为此服务器在您的清单中设置了ansible_pkg_mgr var。在使用ansible playbook medias.yml-I localhost,-connection=local运行ansible任务时,我不使用清单。因此,问题是:ansible_pkg_mgr事实可以定义到svr4的哪里pkg提供了一个新的CentOS安装??否。该目录甚至不存在。这似乎是ansible2.7/CentOS 7x组合上的一个bug。
SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "CentOS",
        "ansible_distribution_file_parsed": true,
        "ansible_distribution_file_path": "/etc/redhat-release",
        "ansible_distribution_file_variety": "RedHat",
        "ansible_distribution_major_version": "7",
        "ansible_distribution_release": "Core",
        "ansible_distribution_version": "7.6.1810",
        "ansible_os_family": "RedHat",
        "ansible_pkg_mgr": "svr4pkg",
        "ansible_python_version": "2.7.5",
        "module_setup": true
    },
    "changed": false
}