salt.states.tomcat

这个state使用manager webapp管理Apache tomcat webapps。这个state需要启用manager webapp

以下grains/pillar需要设置:

tomcat-manager:user: admin user name
tomcat-manager:passwd: password

另外需要配置一个用户在conf/tomcat-users.xml文件:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcat" roles="manager-script"/>
</tomcat-users>

注意:

salt.states.tomcat.mod_watch(name, url='http://localhost:8080/manager', timeout=180)

tomcat监视功能。当调用时会重新加载webapp

salt.states.tomcat.undeployed(name, url='http://localhost:8080/manager', timeout=180)

强制WAR从服务器上卸载

name

部署的context路径

url : http://localhost:8080/manager

服务器manager webapp的URL

timeout : 180

tomcat manager的HTTP请求超时时间

范例:

jenkins:
  tomcat.undeployed:
    - name: /ran
    - require:
      - service: application-service
salt.states.tomcat.wait(name, url='http://localhost:8080/manager', timeout=180)

等待tomcat manager加载

请注意,如果tomcat没有运行,我们不会等待它启动,并且该state将会失败。这个state可以被tomcat.war _deployed state请求以确保tomcat是运行状态,并且manager也是运行状态,做好部署的准备

url : http://localhost:8080/manager

服务器manager webapp的URL

timeout : 180

tomcat manager的HTTP请求超时时间

范例:

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, force=False, url='http://localhost:8080/manager', timeout=180, temp_war_location=None, version='')

强制在context路径中的WAR在部署和启动时会使用WAR版本号

更多信息:
http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming
name

部署的context路径

war

WAR文件的绝对路径(tomcat运行账户应该可进入)或者一个被salt.modules.cp.get_url功能支持的路径

force

强制部署,即使版本号是一样的。默认值为 False。

url : http://localhost:8080/manager

服务器manager webapp的URL

timeout : 180

tomcat manager的HTTP请求超时时间

temp_war_location : None

使用另外一个位置临时复制war包文件默认使用系统临时目录

version : ''

Specify the war version. If this argument is provided, it overrides the version encoded in the war file name, if one is present.

2015.8.6 新版功能.

范例:

jenkins:
  tomcat.war_deployed:
    - name: /ran
    - war: salt://jenkins-1.2.4.war
    - require:
      - service: application-service