zoukankan      html  css  js  c++  java
  • saltstack 在window下 发布 service 服务

    saltstack 发布 service 服务

    如果是注册的服务发布:

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

    目录结构:

    /home/salt/servername
    ├── deploy.sls
    └── files
        └── servername

    server1.sls 配置示例:

    # cat server1.sls

    # 备份 声明变量
    {% set time = salt['cmd.run']('D:Scriptgetinfo.py gettime') %} {% set service_dirname = 'Service' %} {% set service_name = 'Server1' %}
    # 或者自设置批处理备份方式 backup_service: cmd.run: - name: D:ackup ar.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)WinRARWinRAR.exe" a D:ackup\%today%DcApi_%today%.rar -x D:Serviceserver1Logs D:Serviceserver1

    sleep.vbs

    WScript.sleep 5000 
  • 相关阅读:
    IOS证书的申请和使用
    团队开发中如何共用证书
    IOS 开发文件操作——NSFileManager
    RxJava中的doOnSubscribe默认运行线程分析
    XMPP协议实现即时通讯底层书写 (一)--从RFC6121阅读開始
    ant 打批量渠道包,第三方项目作为library打包出错的问题
    hdu5289 2015多校联合第一场1002 Assignment
    【一步步学OpenGL 21】 -《聚光灯光源》
    Images.xcassets 的简单使用
    网易 2016 实习研发project师 3道 编程题
  • 原文地址:https://www.cnblogs.com/sharesdk/p/10821738.html
Copyright © 2011-2022 走看看