那年那日那朵花

".......(o´ω`o)......"

用saltstack批量部署jdk和tomcat

2016-12-12 14:51 linux saltstack

下午花了点时间了搞了下saltstack,故在这记录下。

先修改salt master端的配置文件将下面的注释放开。修改完重启生效。

file_roots:
  base:
    - /srv/salt

然后我们看下目录结构

[root@server01 salt]# pwd
/srv/salt
[root@server01 salt]# 
[root@server01 salt]# tree 
.
├── jdk
│   ├── install.sls
│   └── jdk-file
│       └── jdk-8u73-linux-x64.tar.gz
├── tomcat
│   ├── install.sls
│   ├── tomcat-file
│   │   └── apache-tomcat-8.5.9.tar.gz
│   └── useradd.sls
└── top.sls

4 directories, 6 files
  • jdk目录下是安装部署jdk的具体配置文件和jdk的包
  • 然后tomcat目录下install.sls是安装部署tomcat的配置文件,tomcat-file目录下是安装包。
  • 然后tomcat目录下useradd.sls是配置启动tomcat的用户的信息
  • 然后top.sls是入口的配置文件。

我贴下具体的配置文件,先是top.sls

[root@server01 salt]# more top.sls 
base:
  '*':
    - jdk.install
    - tomcat.install
  • 顺序是先装jdk后装tomcat,但是其实安装tomcat的配置里面我已经加了jdk安装的include配置项,如果** salt '' state.sls tomcat.install *只装tomcat的话也会验证jdk的前提条件的。
  • 如果只需要安装jdk的话,可以用** salt '' state.sls jdk.install *安装。

然后是jdk目录下的install.sls

[root@server01 salt]# cat jdk/install.sls 
jdk-install:
  file.managed:
    - name: /usr/local/java/jdk-8u73-linux-x64.tar.gz
    - source: salt://jdk/jdk-file/jdk-8u73-linux-x64.tar.gz
    - makedirs: true
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /usr/local/java && tar -zxf jdk-8u73-linux-x64.tar.gz && ln -s jdk1.8.0_73 latest
    - unless: test -e /usr/local/java/latest
    - require:
      - file: jdk-install

jdk-env:
  file.append:
    - name: /etc/profile
    - text:
      - export JAVA_HOME=/usr/local/java/latest
      - export PATH=$JAVA_HOME/bin:$PATH
    - require:
      - file: jdk-install
  • 有unless判断jdk不会重复安装
  • 同时会在/etc/profile文件中配置上java环境变量

然后是tomcat目录install.sls

[root@server01 tomcat]# more install.sls 
include:
   - jdk.install
   - tomcat.useradd

tomcat-install:
  file.managed:
     - name: /opt/apache-tomcat-8.5.9.tar.gz
     - source: salt://tomcat/tomcat-file/apache-tomcat-8.5.9.tar.gz
     - makedirs: true
  cmd.run:
     - name: cd /opt && tar -zxf apache-tomcat-8.5.9.tar.gz && mv apache-tomcat-8.5.9 tomcatapp && chown -R auser:auser tomcatapp
     - unless: test -d /opt/tomcatapp
     - require:
       - file: tomcat-install
  • tomcat安装的前提需要先安装jdk和添加上tomcat的启动用户
  • 这里由于以后我是用auser用户启动,带有一点定制化。所以具体的配置可以根据实际情况来,如果是直接用root用户的话,则不需要include 添加用户了。

接着是启用tomcat的用户useradd.sls

[root@server01 tomcat]# more useradd.sls 
auser:
  user.present:
    - fullname: auser
    - shell: /bin/bash
    - home: /home/auser
    - password: '$1$auser$BF1Jw7Hcd0uxCP/JEdqCi0'
    - enforce_password: false
  • 注意添加上enforce_password: false,这样即使主机上auser用户的密码改变了也不会再将密码同步过去。

password密码的那条字符串用这种方式生成,这里为测试我设置的是密码也是auser

[auser@client01 ~]$ openssl passwd -1 -salt 'auser'
Password: 
$1$auser$BF1Jw7Hcd0uxCP/JEdqCi0

然后执行** salt '' state.highstate *即可。

Cloudhu 个人随笔|built by django|

沪ICP备16019452号-1