首页 > 解决方案 > Shell 命令手动工作,不使用 Ansible

问题描述

我正在玩 Ansible(仍在学习),但遇到了一个我想不出解决方案的问题。

我正在尝试使用 Ansible 在远程服务器上安装和启动 Tomcat。

安装工作正常,但最后一步是激活 Tomcat 服务器失败。

如果我手动启动 startup.sh 脚本(as su -),使用以下命令 : bash /opt/tomcat/startup.sh,我可以看到 tomcat 主页。

使用我写的ansible playbook,即使Ansible没有显示任何错误,我也看不到tomcat主页。

这是我正在运行的任务:

   - name: Launch Tomcat
      command: bash /opt/tomcat/startup.sh
      become: true

我尝试添加become_user: rootbecome_method: sudo没有成功。

我认为这可能与become: trueansible的处理方式有关,但我不确定。

标签: bashtomcatansible

解决方案


环境可能有问题。“sudo su”与“su -”不同,其中

-, -l, --login 提供与用户直接登录时所期望的环境相似的环境。

尝试使用shell(因为它允许管道、重定向、逻辑操作……)become: true

shell: su - && bash /opt/tomcat/startup.sh

确保remote_usersu -命令适用于相同的人。


推荐阅读