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. RabbitMQ延迟消息队列实现定时任务完整代码示例

  2. ArcGIS JS 之通过代理配置ArcGIS Server服务 token

    ArcGIS JS 代理 1.ArcGIS Server Manager中配置访问服务的用户名.密码.角色等,并配置地图服务的具体角色名称 2.在ArcGIS JS中配置使用代理,下述代码将esri的 ...

  3. [洛谷P5377][THUPC2019]鸽鸽的分割

    题目大意:有一个圆,圆上有$n$个点,将这几个点两两连接,问最多分成几部分 题解:发现这相当于一个平面图,由欧拉公式得($F$为平面分割块数,$E$为平面图边数,$V$为平面图点数):$$F=E-V+ ...

  4. go 学习笔记(4) import

    package main import ( f "fmt" ) const NAME string = "imooc" var a string = " ...

  5. Hadoop 系列(六)—— HDFS 常用 Shell 命令

    一.基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 stat ...

  6. vue 项目中assets 和static的区别

    一.Webpacked Assets 为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-lo ...

  7. java通过poi读取excel中的日期类型数据或自定义类型日期

    Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...

  8. ZYNQ block design警告:[BD 41-968] AXI interface port /axi_lite4 is not associated to any clock port. It may not work correctly.

    前言 在Block design中引出AXI接口给外部,检查设计告警如下: [BD 41-968] AXI interface port /axi_lite4 is not associated to ...

  9. [AIR] NativeExtension在IOS下的开发实例 --- Flex库项目的创建(二)

    来源:http://bbs.9ria.com/thread-102038-1-1.html 上一章,我已经介绍了如果创建IOS库文件,并定义了两个方法ShowIconBadageNumber和Init ...

  10. 使用Junit测试框架学习Java

    前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...