【发布时间】:2019-02-07 12:42:52
【问题描述】:
我已经编写了一个 ansible 脚本来在远程服务器上执行一个 bash scipt。 当我直接在节点上运行相同的 bash 脚本时,它工作正常。 通过ansible它无法正常工作并返回没有任何错误。
场景:1.杀死tomcat 2.部署war文件 3.启动tomcat
此方案在直接在远程节点上执行时完美运行。 通过 ansible tomcat 被杀死但部署和启动不起作用。
谁能指导一下。
【问题讨论】:
-
我觉得是用户问题。对于 ssh,一旦 ssh 发生,它就会使用 root 用户,它会向其他用户发送 sudo 并部署脚本。
-
致命:[x.x.x.x]:失败! => {"changed": false, "module_stderr": "与 x.x.x.x 的共享连接已关闭。\r\n", "module_stdout": "sudo: 需要密码\r\n", "msg": "MODULE FAILURE \n查看 stdout/stderr 了解确切的错误", "rc": 1}
-
谢谢你。已经授予 sudoers 访问新用户的权限,并且在我无法找到根本原因的情况下遇到另一个错误。错误:致命:[x.x.x.x]:无法访问! => { "changed": false, "msg": "无法通过 ssh 连接到主机:与 x.x.x.x 的共享连接已关闭。\r\n", "unreachable": true } 重试,使用:--limit @ /tmp/deployment:.retry
-
第 1 部分:#ansible 脚本执行要部署的 bash 脚本 --- - 主机:webservers remote_user:newuser #sudo:yes 变为:true 任务:-名称:执行部署脚本命令:sh /tmp /deployment.sh {{version}} PART2:部署脚本有3个步骤1.停止tomcat 2.下载并部署war 3.停止tomcat PART3:通过ansible同时调用bash脚本在远程节点上执行。第 1 步(停止 tomcat)工作正常。第 2 步和第 3 步没有发生。
-
注意:tomcat 服务应该在 newuser 上运行,而远程节点上的 ssh(22) 可以通过 newuser 和 root 完成
标签: bash tomcat deployment ansible