saltstack 在window下 发布 service 服务

saltstack 发布 service 服务

如果是注册的服务发布:

server1.sls 配置示例:

# cat server1.sls

{% set time = salt['cmd.run']('D:\Script\getinfo.py gettime') %} {% set service_dirname = 'Service' %} {% set service_name = 'Server1' %}
# 备份目录 backup_service: cmd.run: - name: D:\backup\rar.bat
# 停止服务 # 除了 net stop service 还可以直接杀死进程 stop_service: cmd.run: - name: taskkill /im Server1.exe /f - require: - cmd: backup_service
# 服务间歇 stop_sleep: cmd.run: - name: D:\\Script\\sleep.vbs - require: - cmd: stop_service # 服务发布 deploy_service: file.recurse: - name: D:\\{{service_dirname}} - source: - salt://Service/Server1 - require: - cmd: stop_sleep # 服务启动 start_service: cmd.run: - name: net start {{service_name}} - require: - file: deploy_service

同样的发布指令:

  salt -L '172.16.3.39' state.sls service.server1

相关脚本参考:

getinfo.py

#coding=utf-8
import os
import time
import sys

def getTime(*vars):
    date = time.strftime("%Y%m%d", time.localtime(time.time()))
    return date

def getLastBackup(*vars):
    if not os.path.exists(vars[0]): print '%r: 备份路径不存在' % vars[0] sys.exit(1) try: os.chdir(vars[0]) except OSError, e: print e sys.exit(1) else: lastbackup = sorted(os.listdir(os.curdir)).pop() return lastbackup def usage(): print 'Usage: python getinfo.py [ gettime | getbackup <service>]' funcdict = {'gettime': getTime, 'getbackup': getLastBackup} def main(): if len(sys.argv) < 2: usage() sys.exit(1) option = sys.argv[1:] if option[0] in funcdict.keys(): print funcdict[option[0]](*option[1:]) else: usage() if __name__ == '__main__': main()

压缩备份 rar.bat 

set "today=%Date:~3,4%%Date:~8,2%%Date:~11,2%"
md D:\\backup\\%today%
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a D:\backup\%today%\DcApi_%today%.rar -x D:\Service\server1\Logs D:\Service\server1

sleep.vbs

WScript.sleep 5000 

 

转载于:https://www.cnblogs.com/sharesdk/p/10821738.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值