salt.states.tomcat¶
This state uses the manager webapp to manage Apache tomcat webapps This state requires the manager webapp to be enabled
The following grains/pillar should be set:
tomcat-manager.user: admin user name
tomcat-manager.passwd: password
and 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>
Notes:
Not supported multiple version on the same context path
- More information about tomcat manager:
- if you use only this module for deployments you might want to restrict
access to the manager so its only accessible via 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
-
salt.states.tomcat.
mod_watch
(name, url='http://localhost:8080/manager', timeout=180)¶ The tomcat watcher function. When called it will reload the webapp in question
-
salt.states.tomcat.
wait
(name, url='http://localhost:8080/manager', timeout=180)¶ Wait for the tomcat manager to load
Notice that if tomcat is not running we won't wait for it start and the state will fail. This state can be required in the tomcat.war_deployed state to make sure tomcat is running and that the manager is running as well and ready for deployment
- url : http://localhost:8080/manager
- the URL of the server manager webapp
- timeout : 180
- timeout for HTTP request to the tomcat manager
Example:
tomcat-service: service: - running - name: tomcat - enable: True wait-for-tomcatmanager: tomcat: - wait - timeout: 300 - require: - service: tomcat-service jenkins: tomcat: - war_deployed - name: /ran - war: salt://jenkins-1.2.4.war - require: - tomcat: wait-for-tomcatmanager
-
salt.states.tomcat.
war_deployed
(name, war, url='http://localhost:8080/manager', __env__='base', timeout=180)¶ Enforce that the WAR will be deployed and started in the context path it will make use of WAR versions
- for more info:
- http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming
- name
- the context path to deploy
- 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
- url : http://localhost:8080/manager
- the URL of the server manager webapp
- timeout : 180
- timeout for HTTP request to the tomcat manager
Example:
jenkins: tomcat.war_deployed: - name: /ran - war: salt://jenkins-1.2.4.war - require: - service: application-service