Postgresql Ansible失败,运行用户:未找到命令

Postgresql Ansible失败,运行用户:未找到命令,postgresql,path,ansible,Postgresql,Path,Ansible,我正在尝试使用角色设置PostgreSQL server。使用Vagrant boxgeneric/centos7此角色失败并显示消息 TASK [galaxyproject.postgresql : Initialize database (RedHat >= 7)] ************ fatal: [postgresql]: FAILED! => {"changed": true, "cmd": ["/usr/pgsql-9.6/bin/postgresql96-setu

我正在尝试使用角色设置PostgreSQL server。使用Vagrant box
generic/centos7
此角色失败并显示消息

TASK [galaxyproject.postgresql : Initialize database (RedHat >= 7)] ************
fatal: [postgresql]: FAILED! => {"changed": true, "cmd": ["/usr/pgsql-9.6/bin/postgresql96-setup", "initdb"], "delta": "0:00:00.181409", "end": "2019-10-16 01:45:59.495713", "msg": "non-zero return code", "rc": 1, "start": "2019-10-16 01:45:59.314304", "stderr": "", "stderr_lines": [], "stdout": "Initializing database ... failed, see /var/lib/pgsql/9.6/initdb.log", "stdout_lines": ["Initializing database ... failed, see /var/lib/pgsql/9.6/initdb.log"]}
文件
/var/lib/pgsql/9.6/initdb.log
包含以下消息

/usr/pgsql-9.6/bin/postgresql96-setup: line 143: runuser: command not found
在目标节点上,
runuser
可用

[root@postgresql ~]# which runuser
/sbin/runuser
因此,问题似乎是当Ansible在目标节点上运行时,
/sbin
不在
路径上

如何使
runuser
命令可供Ansible使用?当然,我不想更改外部角色galaxyproject.postgresql

当我使用Ansible debug输出
PATH
时,它显示
PATH
不包括sbin

TASK [galaxyproject.postgresql : debug] ****************************************
ok: [postgresql] => {
    "PATH": {
        "changed": true, 
        "cmd": "echo $PATH", 
        "delta": "0:00:00.010478", 
        "end": "2019-10-16 02:12:14.882341", 
        "failed": false, 
        "rc": 0, 
        "start": "2019-10-16 02:12:14.871863", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": "/usr/local/bin:/usr/bin", 
        "stdout_lines": [
            "/usr/local/bin:/usr/bin"
        ]
    }
}

如果您需要在路径中添加一些内容,可以尝试为此模块设置环境。我没有在postgres模块中尝试过这个,但它应该可以工作:

- postgres_user: # or other module name you are using
     user: foo # and other normal arguments
  environment:
     PATH: '$PATH:/sbin'

另请参见:

如果在目标主机上使用与playbook相同的用户手动运行命令,会发生什么情况?