首页 > 解决方案 > ansible shell/命令模块不在远程机器上执行脚本

问题描述

在尝试为 Tomcat-8 运行 startup.sh 脚本时,我遇到了以下错误。Playbook 使用 STDOUT 成功执行-“Tomcat 已启动”,但它没有反映在远程机器中。两个模块都存在错误-命令和shell

- name: Download Tomcat version 8
  get_url: 
  url: http://mirrors.wuchna.com/apachemirror/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz 
  dest: /tmp/apache-tomcat-8.5.35.tar.gz

- name: Untar Tomcat to /opt
  shell: tar -zxvf apache-tomcat-8.5.35.tar.gz -C /opt
  args:
    chdir: /tmp/
    warn: False

- name: Change permissions of Tomcat folder
  file:
    path: /opt/apache-tomcat-8.5.35
    mode: 0777
    recurse: yes

- name: Set Catalina Home
  lineinfile:
    path: /etc/profile.d/maven.sh
    regexp: '^#?\s*export CATALINA_HOME=(.*)$'
    line: 'export CATALINA_HOME=/opt/apache-tomcat-8.5.35'
    state: present

- name: execute source
  shell: source maven.sh
  args:
    chdir: /etc/profile.d/
    executable: /bin/sh

- name: start catalina
  become: true
  command: /opt/apache-tomcat-8.5.35/bin/startup.sh &>> /var/log/log.txt

标签: shelltomcatansible

解决方案


尝试在 Centos7 上的剧本中运行您的任务,并在 Tomcat 正常运行的情况下成功执行。(必须先安装 maven)我可能需要更多信息来调试它。

  • 问:你打算以 root 用户身份运行 tomcat 吗?(如果你是..你不应该)
  • 问:遥控器上的操作系统是什么?
  • 问:您是否正确安装了 JRE 或 JDK?

看看这个例子:https ://github.com/ansible/ansible-examples/tree/master/tomcat-standalone


推荐阅读