以JBOSS为例:
salt通过ZIP包安装JBOSS:
1.在/srv/salt下,编辑top.sls配置文件vim top.sls,如下:
base: '*': - jboss
2.在/srv/salt下添加jboss.sls配置文件vim jboss.sls,如下:
pexpect:
pkg:
- installed
jboss1-src:
file.managed:
- name: /data/jboss.py
- source: salt://jboss/jboss.py
- include_empty: True
jboss2-src:
file.managed:
- name: /data/a.sh
- source: salt://jboss/a.sh
- include_empty: True
jboss-src:
file.managed:
- name: /data/jboss-eap-5.1.0.zip
- source: salt://jboss/jboss-eap-5.1.0.zip
- include_empty: True
jboss-install:
cmd.run:
- name: cd /data && unzip jboss-eap-5.1.0.zip && python jboss.py
- require:
- file: jboss-src
- file: jboss1-src
- file: jboss2-src
- pkg: pexpect
3.将jboss的安装包放到/srv/salt/jboss目录下
4.在/srv/salt/jboss目录下创建安装检验的python脚本:
cd
/srv/salt/jboss
vim jboss.py
脚本内容如下:
#!/usr/bin/python
from time import sleep
def check_run():
import pexpect
b='nohup jboss-eap-5.1/jboss-as/bin/run.sh &'
ssh=pexpect.spawn(b)
try:
ssh.expect('\"nohup.out\"',timeout=None)
ssh.sendline('\n')
except Exception,e:
print e
print "THAT'S OK"
def check_error():
a=open('/data/jboss-eap-5.1/jboss-as/server/default/log/server.log','r')
b=a.readlines()
c=0
for i in b:
if not i.find('ERROR')==-1:
c=c+1
print i
if not c:
print "NOT ERROR IN IT"
if __name__=="__main__":
check_run()
sleep(30)
check_error()
5.在master执行同步命令:
salt '*' state.highstate |
转载于:https://blog.51cto.com/zhengbin/1241608