通过Jenkins进行盐状态testing

所有,

我们试图在我们的Jenkins设置中进行自动化testing,以在我们的salt状态文件( .sls )中运行“smoke”和“lint”types的testing。 迄今为止,所有Google-foo都收集了很less的信息。 有一种方法可以在命令行中通过test=True进行test=True ,但是对于没有shell的账户(就像Jenkin的账户通常那样)不起作用。

我还没有碰到任何人做这种自动化的SaltStack状态testing。 所以:

1)有可能吗?

2)任何人都知道一个好的资源,我可以看看

TIA。

泊坞窗。 服务器configuration的快速自动化testing是一个不可否认的现实世界的问题,docker指甲。 它可以提供一个干净的计算机已经启动,并在networking上一秒钟收听。 使用/ srv / salt绑定启动映像,您可以运行salt-call --local state.highstate -l debug来testing状态,而无需使用salt-key

我知道SaltStack,Inc使用LXC的方式也差不多。 他们可能仍然有。

至于testing – 如果你对你的状态文件很聪明和小心,你可以考虑一个干净的第二轮是成功的标志。

这是很难实现的,因为有些国家将永远重新运行。 盐堆已经很好地固定这些状态,因为它们被发现。 与此同时,你将不得不围绕这些状态的内联条件,在运行时执行命令:

 {% if salt['cmd.retcode']('your test here') %} some-identifier: some.module: - name: some anme {% endif %}' 

存在一个jenkins-docker插件 :

docker插件的目标是能够使用docker主机dynamicconfigurationslave,运行一个build,然后拆除slave。

或者,您可以通过新的docker-ng salt模块自动执行整个操作:

 salt dockhost docker-ng.create states-qa rm=True binds="/srv/salt:/srv/salt" salt dockhost docker-ng.retcode states-qa 'salt-call --local state.highstate' # run 1 salt dockhost docker-ng.retcode states-qa 'salt-call --local state.highstate' # run 2 salt dockhost docker-ng.stop states-qa 

你可能想看看TestInfra