前沿:

      前段时间搞了集群配置系统,正在搞配置文件的备份,中心点上传,文件hash记录,配置文件的下发回滚。 这里要用到saltstack cp模块,来实现对 master minion文件的传输及管理。

       这里说下,我主要的实现方式,文件备份是通过自写的模块备份,然后调用cp.push来拉取到master备份。下发回滚的话,用的额是get_file的方式,从master拖过去。   其实saltstack本身就含有文件的备份,但是为了多方面着想,多写了一个逻辑,存放到master点。

       这里提一句,有朋友可能会纳闷,jinja2渲染好的配置文件为啥不直接sls的模式,而用get_url的模式。  个人觉得,如果是初始化配置,sls很是方便,但是对于经常有变动的服务,反而通过mongodb记录数据,然后web api接口渲染配置文件来的更方便。

(备份回滚思路,有兴趣的朋友可以参考下)


说的有点乱,具体的自己看文档 !

get_file


cp.get_file用来从master下载文件到客户端,可以外加几个参数,比如没有文件夹,创建文件夹的makedirs=True ,压缩的gzip参数。  

语法如下:

get_url

cp.get_url可以从一个URL地址下载文件,URL可以是msater上的路径(salt://),也可以是http网址。

个人觉得 get_template 没啥用处,用他还不如sls的推送。

通过saltstack cp 实现配置文件的下发 !



这里是saltstack master端从minion拉取文件!

有兴趣的朋友可以改cp.push的源码,也就那几行。

关于saltstack cp模块就介绍到这里了!   我给大家演示的时候用的是cli,大家在运维平台上可以使用api调用cp相关的模块。



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

nginx lua和redis解决saltstack传输文件慢的问题

前言:     saltstack是个好东西,我现在很多的api接口都开始用saltstack做。有的时候会有在页面上传文件,然后推送到客户端的情况。或者是把安装...

阅读全文

2则回应给“saltstack cp实现配置代码文件的管理拉取和回滚下发”

  1. 小李说道:

    小瑞,请教个问题,salt sdk api有增量复制目录的模块吗?

  2. 请教 , 使用states文件该如何去写呢? 暂时没有发现对应states模块现在很搓的方案 , 将cp.push封装在脚本中 , 将脚本下发执行脚本 , 脚本调用cp.push上传文件

发表评论