salt.modules.tomcat
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.
- configuration
-
Java bin path should be in default path
If ipv6 is enabled make sure you permit manager access to ipv6 interface "0:0:0:0:0:0:0:1"
If you are using tomcat.tar.gz it has to be installed or symlinked under
/opt
, preferably using name tomcat"tomcat.signal start/stop" works but it does not use the startup scripts
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:
- JVM Vendor:
-
Sun Microsystems Inc.
- JVM Version:
-
1.6.0_43-b01
- OS Architecture:
-
amd64
- OS Name:
-
Linux
- OS Version:
-
2.6.32-358.el6.x86_64
- Tomcat Version:
-
Apache Tomcat/7.0.37
-
Deploy a WAR file
- war
-
absolute path to WAR file (should be accessible by the user running tomcat) or a path supported by the salt.modules.cp.get_file function
- context
-
the context path to deploy
- forceFalse
-
set True to deploy the webapp even one is deployed in the context
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- saltenvbase
-
the environment for WAR file in used by salt.modules.cp.get_url function
- timeout180
-
timeout for HTTP request
- temp_war_locationNone
-
use another location to temporarily copy to war file by default the system's temp directory is used
- version''
-
Specify the war version. If this argument is provided, it overrides the version encoded in the war file name, if one is present.
Examples:
salt '*' tomcat.deploy_war salt://salt-2015.8.6.war version=2015.08.r6
New in version 2015.8.6.
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.deploy_war(war, context, force='no', url='http://localhost:8080/manager', saltenv='base', timeout=180, temp_war_location=None, version=True)
-
Extract the version from the war file name. There does not seem to be a standard for encoding the version into the war file name
Examples:
/path/salt-2015.8.6.war -> 2015.8.6 /path/V6R2013xD5.war -> None
salt.modules.tomcat.extract_war_version(war)
-
Return all server information from catalina.sh version
CLI Example:
salt '*' tomcat.fullversion
salt.modules.tomcat.fullversion()
-
Find memory leaks in tomcat
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.leaks
salt.modules.tomcat.leaks(url='http://localhost:8080/manager', timeout=180)
-
list all the deployed webapps
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.ls salt '*' tomcat.ls http://localhost:8080/manager
salt.modules.tomcat.ls(url='http://localhost:8080/manager', timeout=180)
-
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.passwd(passwd, user='', alg='sha1', realm=None)
-
Reload the webapp
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.reload /jenkins salt '*' tomcat.reload /jenkins http://localhost:8080/manager
salt.modules.tomcat.reload_(app, url='http://localhost:8080/manager', timeout=180)
-
return details about the server
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.serverinfo salt '*' tomcat.serverinfo http://localhost:8080/manager
salt.modules.tomcat.serverinfo(url='http://localhost:8080/manager', timeout=180)
-
return the status of the webapp sessions
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.sessions /jenkins salt '*' tomcat.sessions /jenkins http://localhost:8080/manager
salt.modules.tomcat.sessions(app, url='http://localhost:8080/manager', timeout=180)
-
Signals catalina to start, stop, securestart, forcestop.
CLI Example:
salt '*' tomcat.signal start
salt.modules.tomcat.signal(signal=None)
-
Start the webapp
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.start /jenkins salt '*' tomcat.start /jenkins http://localhost:8080/manager
salt.modules.tomcat.start(app, url='http://localhost:8080/manager', timeout=180)
-
Used to test if the tomcat manager is up
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.status salt '*' tomcat.status http://localhost:8080/manager
salt.modules.tomcat.status(url='http://localhost:8080/manager', timeout=180)
-
return the status of the webapp (stopped | running | missing)
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.status_webapp /jenkins salt '*' tomcat.status_webapp /jenkins http://localhost:8080/manager
salt.modules.tomcat.status_webapp(app, url='http://localhost:8080/manager', timeout=180)
-
Stop the webapp
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.stop /jenkins salt '*' tomcat.stop /jenkins http://localhost:8080/manager
salt.modules.tomcat.stop(app, url='http://localhost:8080/manager', timeout=180)
-
Undeploy a webapp
- app
-
the webapp context path
- urlhttp://localhost:8080/manager
-
the URL of the server manager webapp
- timeout180
-
timeout for HTTP request
CLI Examples:
salt '*' tomcat.undeploy /jenkins salt '*' tomcat.undeploy /jenkins http://localhost:8080/manager
salt.modules.tomcat.undeploy(app, url='http://localhost:8080/manager', timeout=180)
-
Return server version from catalina.sh version
CLI Example:
salt '*' tomcat.version
salt.modules.tomcat.version()
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.tomcat.html