一、环境说明

在部署好SaltStack的基础服务端和客户端环境后,可以基于该环境自动部署Tomcat
项目 参数 备注
操作系统 Centos 7
服务端IP地址 192.168.1.1
客户端IP地址 192.168.1.2
tomcat版本 apache-tomcat-7.0.10
jdk版本 jdk-7u79-linux-x64
目录 参数 备注
文件存放路径 /opt 服务端
tomcat安装路径 /u01/tomcat /u01目录若无需要提前创建
jdk安装路径 /u01/jdk /u01目录若无需要提前创建

二、自动部署

1.环境准备

1.1 指定master入口
[root@server ~]# vi /etc/salt/master
#将下面的注释打开
   file_roots:
     base:
       - /srv/salt/

[root@server ~]# systemctl restart salt-master.service
1.2 目录创建
为JDK和Tomcat单独创建目录
[root@server ~]# mkdir /srv/salt/tomcat -p
[root@server ~]# mkdir /srv/salt/tomcat/files -p
[root@server ~]# mkdir /srv/salt/jdk/files -p
1.3 安装包准备
将安装包拷贝到各自的files目录下
[root@server ~]# cp /opt/jdk-7u79-linux-x64.tar.gz /srv/salt/jdk/files/
[root@server ~]# cp /opt/apache-tomcat-7.0.10.tar.gz /srv/salt/tomcat/files/
1.4 Tomcat系统服务脚本
/opt目录下新建文件tomcat.service,内容如下:
[Unit]  
Description=Tomcat7  
After=syslog.target network.target remote-fs.target nss-lookup.target  

[Service]  
Type=forking  
Environment='JAVA_HOME=/u01/jdk'  
Environment='CATALINA_PID=/u01/tomcat/bin/tomcat.pid'  
Environment='CATALINA_HOME=/u01/tomcat'  
Environment='CATALINA_BASE=/u01/tomcat'  
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'  

WorkingDirectory=/u01/tomcat  

ExecStart=/u01/tomcat/bin/startup.sh  
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/bin/kill -s QUIT $MAINPID  
PrivateTmp=true  

[Install]  
WantedBy=multi-user.target

2.SLS模块编写

2.1 JDK安装的SLS模块编写
[root@server ~]# cat /srv/salt/jdk/install.sls
jdk-install:
  file.managed:
    - name: /opt/jdk-7u79-linux-x64.tar.gz
    - source: salt://jdk/files/jdk-7u79-linux-x64.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /opt && tar zxf jdk-7u79-linux-x64.tar.gz && mv jdk1.7.0_79 /u01/jdk && chown -R root:root /u01/jdk
    - unless: test -d /u01/jdk
    - require:
      - file: jdk-install

jdk-config:
  file.append:
    - name: /etc/profile
    - text:
      - export JAVA_HOME=/u01/jdk
      - export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
      - export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
2.2 Tomcat安装的SLS模块编写
[root@server ~]# cat /srv/salt/tomcat/install.sls    
include:
  - jdk.install

tomcat-install:
  file.managed:
    - name: /opt/apache-tomcat-7.0.10.tar.gz
    - source: salt://tomcat/files/apache-tomcat-7.0.10.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /opt && tar zxf apache-tomcat-7.0.10.tar.gz && mv apache-tomcat-7.0.10 /u01/tomcat && chown -R root:root /u01/tomcat
    - unless: test -d /u01/tomcat
    - require:
      - file: tomcat-install

tomcat-config:
  file.append:
    - name: /etc/profile
    - text:
      - export TOMCAT_HOME=/u01/tomcat
2.3 Tomcat注册服务并开机自启的SLS模块编写
[root@server ~]# cat /srv/salt/tomcat/tomcatservice.sls 
tomcat-tomcatservice:
 file.managed:
   - name: /opt/tomcat.service
   - source: salt://tomcat/files/tomcat.service
   - user: root
   - group: root
   - mode: 755
 cmd.run:
   - name: cd /opt && mv tomcat.service /usr/lib/systemd/system && chown -R root:root /usr/lib/systemd/system/tomcat.service && source /etc/profile && systemctl enable tomcat.service && systemctl start tomcat.service
   - require:
     - file: tomcat-tomcatservice
2.4 topfile编写
[root@server ~]# cat /srv/salt/top.sls 
base:
  '*':
    - tomcat.install
    - tomcat.tomcatservice

3.部署Tomcat

[root@server ~]# salt '*' state.highstate

4.验证

在客户端检查环境变量以及Tomcat版本号,验证是否安装成功
[root@tomcat ~]# source /etc/profile

#查看jdk版本号
[root@tomcat ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

#查看Tomcat版本号
[root@tomcat ~]# /u01/tomcat/bin/version.sh 
Using CATALINA_BASE:   /u01/tomcat
Using CATALINA_HOME:   /u01/tomcat
Using CATALINA_TMPDIR: /u01/tomcat/temp
Using JRE_HOME:        /u01/jdk
Using CLASSPATH:       /u01/tomcat/bin/bootstrap.jar:/u01/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.10
Server built:   Mar 5 2011 01:07:22
Server number:  7.0.10.0
OS Name:        Linux
OS Version:     3.10.0-123.el7.x86_64
Architecture:   amd64
JVM Version:    1.7.0_79-b15
JVM Vendor:     Oracle Corporation

results matching ""

    No results matching ""