Docker. O teste automatizado rápido da configuração do servidor é um inegável problema do mundo real que o docker unha. Ele pode fornecer um computador limpo já inicializado e escutando na rede em um segundo. Inicie uma imagem com / srv / salt bind-mounted e você pode executar salt-call --local state.highstate -l debug
nos estados de teste sem exagerar com salt-key
.
Eu sei que o SaltStack, Inc usou o LXC da mesma maneira. Eles provavelmente ainda fazem.
Quanto ao teste - se você for inteligente e cuidadoso com seus arquivos de estados, pode considerar uma segunda execução limpa como uma indicação de sucesso.
Isso é difícil de conseguir, pois alguns estados sempre serão executados novamente. A pilha de sal tem sido boa em consertar esses estados conforme são encontrados. Enquanto isso, você terá que cercar esses estados com condicionais inline jinja que executam comandos no minion em tempo de execução:
{% if salt['cmd.retcode']('your test here') %}
some-identifier:
some.module:
- name: some anme
{% endif %}'
Existe um plug-in jenkins-docker :
The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave.
Como alternativa, você pode automatizar tudo por meio do novo docker- ng salt module :
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