Support for Tomcat
This module uses the manager webapp to manage Apache tomcat webapps. If the manager webapp is not configured some of the functions won't work.
Note
The config format was changed in 2014.7.0, but backwards compatibility for the old-style config will be in the 2014.7.1 release.
The following grains/pillar should be set:
tomcat-manager:
user: <username>
passwd: <password>
or the old format:
tomcat-manager.user: <username>
tomcat-manager.passwd: <password>
Also configure a user in the conf/tomcat-users.xml file:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-script"/>
</tomcat-users>
Note
More information about tomcat manager: http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
if you use only this module for deployments you've might want to strict access to the manager only from localhost for more info: http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Configuring_Manager_Application_Access
Tested on:
Sun Microsystems Inc.
1.6.0_43-b01
amd64
Linux
2.6.32-358.el6.x86_64
Apache Tomcat/7.0.37
salt.modules.tomcat.
deploy_war
(war, context, force='no', url='http://localhost:8080/manager', saltenv='base', timeout=180, env=None, temp_war_location=None)¶Deploy a WAR file
CLI Examples:
cp module
salt '*' tomcat.deploy_war salt://application.war /api
salt '*' tomcat.deploy_war salt://application.war /api no
salt '*' tomcat.deploy_war salt://application.war /api yes http://localhost:8080/manager
minion local file system
salt '*' tomcat.deploy_war /tmp/application.war /api
salt '*' tomcat.deploy_war /tmp/application.war /api no
salt '*' tomcat.deploy_war /tmp/application.war /api yes http://localhost:8080/manager
salt.modules.tomcat.
fullversion
()¶Return all server information from catalina.sh version
CLI Example:
salt '*' tomcat.fullversion
salt.modules.tomcat.
leaks
(url='http://localhost:8080/manager', timeout=180)¶Find memory leaks in tomcat
CLI Examples:
salt '*' tomcat.leaks
salt.modules.tomcat.
ls
(url='http://localhost:8080/manager', timeout=180)¶list all the deployed webapps
CLI Examples:
salt '*' tomcat.ls
salt '*' tomcat.ls http://localhost:8080/manager
salt.modules.tomcat.
passwd
(passwd, user='', alg='md5', realm=None)¶This function replaces the $CATALINA_HOME/bin/digest.sh script convert a clear-text password to the $CATALINA_BASE/conf/tomcat-users.xml format
CLI Examples:
salt '*' tomcat.passwd secret
salt '*' tomcat.passwd secret tomcat sha1
salt '*' tomcat.passwd secret tomcat sha1 'Protected Realm'
salt.modules.tomcat.
reload
(app, url='http://localhost:8080/manager', timeout=180)¶Reload the webapp
CLI Examples:
salt '*' tomcat.reload /jenkins
salt '*' tomcat.reload /jenkins http://localhost:8080/manager
salt.modules.tomcat.
serverinfo
(url='http://localhost:8080/manager', timeout=180)¶return details about the server
CLI Examples:
salt '*' tomcat.serverinfo
salt '*' tomcat.serverinfo http://localhost:8080/manager
salt.modules.tomcat.
sessions
(app, url='http://localhost:8080/manager', timeout=180)¶return the status of the webapp sessions
CLI Examples:
salt '*' tomcat.sessions /jenkins
salt '*' tomcat.sessions /jenkins http://localhost:8080/manager
salt.modules.tomcat.
signal
(signal=None)¶Signals catalina to start, stop, securestart, forcestop.
CLI Example:
salt '*' tomcat.signal start
salt.modules.tomcat.
start
(app, url='http://localhost:8080/manager', timeout=180)¶Start the webapp
CLI Examples:
salt '*' tomcat.start /jenkins
salt '*' tomcat.start /jenkins http://localhost:8080/manager
salt.modules.tomcat.
status
(url='http://localhost:8080/manager', timeout=180)¶Used to test if the tomcat manager is up
CLI Examples:
salt '*' tomcat.status
salt '*' tomcat.status http://localhost:8080/manager
salt.modules.tomcat.
status_webapp
(app, url='http://localhost:8080/manager', timeout=180)¶return the status of the webapp (stopped | running | missing)
CLI Examples:
salt '*' tomcat.status_webapp /jenkins
salt '*' tomcat.status_webapp /jenkins http://localhost:8080/manager
salt.modules.tomcat.
stop
(app, url='http://localhost:8080/manager', timeout=180)¶Stop the webapp
CLI Examples:
salt '*' tomcat.stop /jenkins
salt '*' tomcat.stop /jenkins http://localhost:8080/manager
salt.modules.tomcat.
undeploy
(app, url='http://localhost:8080/manager', timeout=180)¶Undeploy a webapp
CLI Examples:
salt '*' tomcat.undeploy /jenkins
salt '*' tomcat.undeploy /jenkins http://localhost:8080/manager
salt.modules.tomcat.
version
()¶Return server version from catalina.sh version
CLI Example:
salt '*' tomcat.version