saltstack cp实现配置代码文件的管理拉取和回滚下发

前沿:

      前段时间搞了集群配置系统,正在搞配置文件的备份,中心点上传,文件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相关的模块。

2 Responses

  1. 小李 2016年9月9日 / 下午6:15

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

  2. 等待错过的下一站路口 2014年12月30日 / 下午3:49

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">