rdo*_*dev 7 automated-testing continuous-integration saltstack
全部,
我们正在尝试在我们的 Jenkins 设置中进行自动化测试,以在我们的 salt 状态文件 ( .sls) 中运行“smoke”和“lint”类型的测试。到目前为止,所有 google-foo 都产生了很少的信息。有一种test=True在命令行中进行测试的方法,但这不适用于无外壳帐户(就像 Jenkin 的帐户通常那样)。
我还没有遇到过对 SaltStack 状态进行这种自动测试的人。所以:
1)有没有可能
2)任何人都知道我可以查看的好资源
TIA。
码头工人。服务器配置的快速自动化测试是 docker 解决的一个不可否认的现实问题。它可以提供一台已经启动并在一秒钟内侦听网络的干净计算机。使用 /srv/salt bind-mounted 启动映像,您可以运行salt-call --local state.highstate -l debug到测试状态而无需大惊小怪salt-key。
我知道 SaltStack, Inc 使用 LXC 的方式大致相同。他们可能仍然这样做。
至于测试 - 如果您对状态文件很聪明和小心,您可以将干净的第二次运行视为成功的标志。
这很难实现,因为某些状态将始终重新运行。Salt Stack 擅长修复这些被发现的状态。与此同时,你必须用内联 jinja 条件包围这些状态,这些条件在运行时在 minion 上执行命令:
{% if salt['cmd.retcode']('your test here') %}
some-identifier:
some.module:
- name: some anme
{% endif %}'
Run Code Online (Sandbox Code Playgroud)
存在一个jenkins-docker 插件:
docker 插件的目的是能够使用 docker 主机来动态配置从站,运行单个构建,然后拆除该从站。
或者,您可以通过新的 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |