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:\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 

saltstack 在window下 发布 service 服务的更多相关文章

  1. window下启动redis服务

    ---恢复内容开始--- 在windows环境下启动redis服务,前提是你安装好了,启动如下: 一,进入redis的安装目录下,在地址栏输入“cmd”,回车 二,然后会进入cmd界面,直接运行命令r ...

  2. (三)发布Dubbo服务

    我们现在来学习下发布Dubbo服务,主要参考dubbo开发包里的demo源码:由浅入深的讲解下这个小demo: github地址:https://github.com/apache/incubator ...

  3. 二,windows下安装memcached服务

    window下安装memcached服务的流程如下: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 ‘c ...

  4. Windows 下 exe 服务注册到 service 服务中

    window 下注册 exe 程序.添加到 服务中. window 注册服务方式 一. regsvr 方式 直接在 程序目录执行: Regsvr 32 命令是Windows中控件文件 ( 如扩展名为D ...

  5. 使用GeoServer+QGIS发布WMTS服务 | Publishing WMTS Service Using GeoServer+QGIS

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  6. 通过samba服务将centos7指定文件挂载到window下

    做嵌入式开发,windows下编辑代码,虚拟机上编译,为了方便打算在虚拟机下搭一个samba服务器,将文件夹映射到windows下,搜索网上的方法,内容大同小异,试了半天终于成功了.特此记录一下步骤, ...

  7. .netcore下的微服务、容器、运维、自动化发布

    原文:.netcore下的微服务.容器.运维.自动化发布 微服务 1.1     基本概念 1.1.1       什么是微服务? 微服务架构是SOA思想某一种具体实现.是一种将单应用程序作为一套小型 ...

  8. 大规模微服务架构下的Service Mesh探索之路

    小结: 1. 第一.二代Service Mesh meetup-slides/敖小剑-蚂蚁金服-大规模微服务架构下的Service Mesh探索之路.pdf https://github.com/se ...

  9. Windows下使用service.bat安装tomcat服务, 启动停止tomcat服务

    在项目开发过程中,以前只是在Eclipse中配置.启动.停止tomcat服务器 如果只想在机器中使用tomcat服务器,而不想安装MyEclipse,可以使用service.bat 将tomcat安装 ...

随机推荐

  1. 【LEETCODE】50、数组分类,简单级别,题目:888,1013,896,485,448,697

    package y2019.Algorithm.array; import java.util.HashSet; import java.util.Set; /** * @ProjectName: c ...

  2. mysql 字符

    只适用mysql5.0以上的版本: 1.一个汉字占多少长度与编码有关:         UTF-8:一个汉字=3个字节            GBK:一个汉字=2个字节 2.varchar(n)表示n ...

  3. Badboy与Jmeter脚本录制

    下载地址: http://www.badboy.com.au         Badboy 是一个强大的工具,旨在帮助测试和开发复杂的动态应用,Badboy 包括一个简单而全面的捕获/回放界面,强大的 ...

  4. 【转载】终于有人把“TCC分布式事务”的实现原理讲明白了

    之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下.很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用. 所以这篇文章,就用大白话+手工绘图,并结合一 ...

  5. WPF 程序如何跨窗口/跨进程设置控件焦点

    原文:WPF 程序如何跨窗口/跨进程设置控件焦点 WPF 程序提供了 Focus 方法和 TraversalRequest 来在 WPF 焦点范围内转移焦点.但如果 WPF 窗口中嵌入了其他框架的 U ...

  6. python3-使用requests模拟登录网易云音乐

    # -*- coding: utf-8 -*- from Crypto.Cipher import AES import base64 import random import codecs impo ...

  7. vue-cli 3.0 安装

    一.安装vue-cli 脚手架命令 npm install -g vue-cli   适用于vue-cli 2.0 npm install -g @vue/cli 适用于vue-cli 3.0 卸载命 ...

  8. IObit Driver Booster 无法更新驱动的解决办法

    IObit Driver Booster 无法更新驱动的解决办法:依次打开软件中的 菜单-设置-网络-自定义代理设置-主机:填入210.101.131.231 端口:8080 最后点确定完成. 注意! ...

  9. django图片上传修改图片名称

    storage.py # 给上传的图片重命名 from django.core.files.storage import FileSystemStorage from django.http impo ...

  10. mysql57重新安装后无法再次启动mysql57服务“本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动。”--解决方法

    本地计算机上的MySQL服务启动后停止.某些服务在未由其他服务或程序使用时将自动. (win10,mysql5.7+) 解决方法: 第一步:查看MySQL57安装路径 只要在programData路径 ...