在Ansible中,通过module来运行命令或脚本。常用的module是command、shell和raw,其中shell和raw可以执行bash脚本。但是当使用这些module时,可能会遇到“Ansible无法在远程主机上运行BASH”的问题。
解决方法是在host的“/etc/sudoers”中为要运行的user添加NOPASSWD权限,并在playbook中使用sudo或become运行命令。以下是使用sudo的示例:
另一个解决方法是使用适当的module来代替shell和raw。例如,当需要执行bash脚本时,使用script module可以避免该问题: