当来自非 root 用户的 运行 时,`Ansible-playbook` 命令失败
`Ansible-playbook` command fails when run from a non-root user
我正在尝试 运行 来自 RHEL 机器上 cloud-user(non-root)
用户的 ansible-playbook。该剧本需要 sudo 访问权限,为此我使用了以下命令 -
ansible-playbook -i inventory -e @install_vars.yaml playbooks/install.yaml --become-method=sudo --become
使用become
解决了之前安装包遇到的问题。
但是,我收到以下错误:
fatal: [ash-test-bb22-bastion-0]: FAILED! => {"changed": true, "cmd": "openshift-install create manifests --log-level info", "delta": "0:00:00.002662", "end": "2022-01-20 04:36:30.224594", "msg": "non-zero return code", "rc": 127, "start": "2022-01-20 04:36:30.221932", "stderr": "/bin/sh: openshift-install: command not found", "stderr_lines": ["/bin/sh: openshift-install: command not found"], "stdout": "", "stdout_lines": []}
openshift-install
可执行文件在 /usr/local/bin
目录下可用,当用户是 root 时可以正常工作。
PATH 也有定义。
PATH=/home/cloud-user/.local/bin:/home/cloud-user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
我做错了什么吗?谁能告诉我上述场景的 ansible-playbook 的确切命令?
按照@Zeitounator 的建议,我修改了 /etc/sudoers 文件并更新了 $PATH 变量,解决了上述问题。
我正在尝试 运行 来自 RHEL 机器上 cloud-user(non-root)
用户的 ansible-playbook。该剧本需要 sudo 访问权限,为此我使用了以下命令 -
ansible-playbook -i inventory -e @install_vars.yaml playbooks/install.yaml --become-method=sudo --become
使用become
解决了之前安装包遇到的问题。
但是,我收到以下错误:
fatal: [ash-test-bb22-bastion-0]: FAILED! => {"changed": true, "cmd": "openshift-install create manifests --log-level info", "delta": "0:00:00.002662", "end": "2022-01-20 04:36:30.224594", "msg": "non-zero return code", "rc": 127, "start": "2022-01-20 04:36:30.221932", "stderr": "/bin/sh: openshift-install: command not found", "stderr_lines": ["/bin/sh: openshift-install: command not found"], "stdout": "", "stdout_lines": []}
openshift-install
可执行文件在 /usr/local/bin
目录下可用,当用户是 root 时可以正常工作。
PATH 也有定义。
PATH=/home/cloud-user/.local/bin:/home/cloud-user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
我做错了什么吗?谁能告诉我上述场景的 ansible-playbook 的确切命令?
按照@Zeitounator 的建议,我修改了 /etc/sudoers 文件并更新了 $PATH 变量,解决了上述问题。