2016-08-31 3 views
2

Ich versuche Ansible Playbook für Tomcat-Anwendungsbereitstellung einrichten. Abgesehen von Tomcat startet alles ohne Probleme. Wenn ich startup.sh verwende funktioniert es aber ich muss Tomcat mit catalina.sh Skript starten.So führen Sie Tomcat Catalina-Skript auf Ansible

- name: start tomcat 
    command: ./bin/catalina.sh start 
    args: 
     chdir: /websrv/tomcat/tomcat-8080/ 

Dies ist, was ich versuche zu tun, sagt es begann, aber es wurde nie gestartet.

TASK [start tomcat] ************************************************************ 
changed: [appserver.example.com] 

Bitte helfen Sie.

Hinweis: Ich verwende Zip-Version von Tomcat auf Centos und habe Tomcat nicht installiert. Wenn jemand herausfinden würde, wie man das Skript startet, wäre das sehr hilfreich.

+0

@techraf JAVA_HOME auf catalina.sh Skript definiert ist und Es ist nicht in .bash_profile enthalten. Beim Aufruf/Ausführen von catalina.sh wird also JAVA_HOME in die Sitzung exportiert. – parames

Antwort

3

Die integrierten Tomcat-Verwaltungsskripte werden nicht vom tty getrennt, wodurch sie beim Beenden der Ansible ssh-Sitzung beendet werden. Sie müssen entweder das Skript hacken, um es hinter-/loszuziehen, oder ein geeignetes init/systemd-Skript (oder eine Krippe aus einem der zahlreichen Beispiele da draußen) für Tomcat schreiben und installieren. Zum Beispiel here oder here oder here ...

+0

Danke Matt, ich habe [this] (https://github.com/ansible/ansible-examples/blob/master/tomcat-standalone/roles/tomcat/files/tomcat-initscript.sh) -Skripte benutzt und nach Bedarf modifiziert es funktioniert jetzt gut. – parames

+0

schön. Danke für den Vorschlag – Dexter

1

Wenn Sie eine schnelle Lösung wollen Tomcatbediener ungebunden von ansible des TTY laufen verwenden die folgenden:

- name: "Starting Apache server" 
    command: nohup {{ apache_install_location }}/tomcat9/bin/startup.sh 
+0

Danke das hat für mich funktioniert. Ich habe versucht, das richtige init/systemd-Skript zu schreiben, aber obwohl es manuell funktionierte, funktionierte es nicht über ansible. Gute Sache über den obigen Ansatz ist, dass die Tomcat-Logs auf catalina.out gerichtet sind, anstatt in nohup.out geschrieben zu werden. –

Verwandte Themen