1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
####################################################################################
#coding=utf-8
#脚本用途:OPENAPI和OPENHLS服务自动化安装脚本
#编写时间:2016年9月21日
#脚本作者:乐橙运维组
####################################################################################
#!/usr/bin/env python
#载入模块
import
commands
import
os
import
time
import
glob
from
printColour
import
PrintColour
#确认安装包的版本号和本机的模块名称
name
=
commands.getoutput(
'cat /etc/role_install|head -1'
)
os.environ[
'name'
]
=
str
(name)
bagname
=
glob.glob(
"/share/yunwei/Lecheng_Open*"
)
bagname
=
''.join(bagname)
path
=
bagname[
14
:
41
]
os.environ[
'path'
]
=
str
(path)
print
"本次的部署包名字是:"
+
path
PrintColour.InfoRed (
"请检查,如果大包版本号不正确,请ctrl+c退出本脚本。"
)
time.sleep(
5
)
#将原有的hswx保存成备份,方便回滚
def
CopyHswx():
if
os.path.exists(
"/mnt/hswx"
)
=
=
True
:
os.system(
"mv /mnt/hswx /mnt/hswx+$(date +%y%m%d)"
)
os.system(
"rm -rf /mnt/Lecheng_Open*"
)
else
:
os.system(
'echo "*/1 * * * * source /etc/profile && python /share/yunwei/script/watchDog/open/$name/$name-Check.py > /dev/null 2>&1">> /var/spool/cron/root'
)
PrintColour.InfoGreen (
"crontab 已经添加..."
)
time.sleep(
2
)
pass
#获取本机角色文件内容
def
GetName():
if
os.path.exists(
"/etc/role_install"
)
=
=
False
:
print
(
"本台机器不存在模块名文件/etc/role_install,脚本将跳出!"
)
exit(
0
)
else
:
print
(
"本台机器所安装的模块名是:"
)
+
name
PrintColour.InfoRed (
"请检查,如果模块名不匹配,请ctrl+c退出本脚本。"
)
time.sleep(
5
)
#杀死之前启动的zk和进程
def
KillProcess():
os.system(
"pkill -9 java"
)
print
(
"zk停止完毕,现在停止原有进程..."
)
time.sleep(
3
)
#将安装包放到/mnt/下,并且解压缩
def
CopyFile():
os.system(
"tar -zxvf /share/yunwei/Lecheng_Open*.tar.gz -C /mnt"
)
PrintColour.InfoRed (
"整个大包已经解压到/mnt。"
)
os.system(
"cd /mnt/$path ; unzip $name.zip"
)
os.system(
"mkdir /mnt/hswx"
)
os.system(
"cp -rf /mnt/$path/build/* /mnt/hswx"
)
time.sleep(
3
)
#进入解压后的文件夹,执行文件启动脚本
def
StartProcess():
os.system(
"cp -rf /share/yunwei/chenshuo/zkclient /mnt/hswx"
)
os.system(
"chmod u+x /mnt/hswx/zkclient/* *.*"
)
os.system(
"cd /mnt/hswx/zkclient/; sh start_zkclient.sh"
)
print
(
"zk进程已经启动完毕..."
)
print
(
"现在进入"
)
+
path
print
(
"启动"
)
+
name
+
(
"模块"
)
time.sleep(
3
)
os.system(
"cd /mnt/hswx/$name ; sh start_$name.sh"
)
#展示进程
def
ShowProcess():
if
name
=
=
"openapi"
:
PrintColour.InfoGreen (
"openapi的进程情况如下"
)
os.system(
"ps -ef | grep java"
)
elif
name
=
=
"openhls"
:
PrintColour.InfoGreen (
"openhls的进程情况如下"
)
os.system(
"ps -ef | grep java"
)
else
:
print
(
"没有对应的开放平台进程。"
)
if
__name__
=
=
'__main__'
:
CopyHswx()
GetName()
KillProcess()
CopyFile()
StartProcess()
ShowProcess()
PrintColour.InfoYellow(
"整个脚本执行完毕,感谢您的使用~"
)
|
本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1856077