source saltstack open gui salt-stack

saltstack - ¿Cómo puedo ejecutar múltiples comandos usando Salt Stack?



saltstack open source (3)

Intenté añadir:

mypack: pkg: - installed - pkgs: - mercurial - git cmd.run: - name: ''mkdir -p /opt/mypack'' cmd.run: ''hg pull -u -R /opt/mypack || hg clone -R /opt https://...'' cmd.run: ''ln -s /opt/mypack/etc/init.d/xxx /etc/init.d/xxx''

Pero por alguna razón, este estado parece ejecutarse / instalarse pero los comandos no se ejecutan, o al menos no todos.

Necesito una solución para ejecutar varios comandos y fallar la implementación si alguno de estos falla.

Sé que podría escribir un script de bash e incluir este script de bash, pero estaba buscando una solución que funcionara solo con el archivo YAML.


Además de las sugerencias (mejores) anteriores, puede hacer esto:

cmd-test: cmd.run: - names: - mkdir -p /opt/mypack - hg pull -u -R /opt/mypack || hg clone -R /opt https://... - ln -s /opt/mypack/etc/init.d/xxx /etc/init.d/xxx

Por razones que aún no entiendo (soy un principiante de Salt), los names se iteran en orden inverso, por lo que los comandos se ejecutan al revés.


Puede hacer lo que Dan señaló, usando la tubería o un estado cmd.script . Pero debe tenerse en cuenta que tiene algunos problemas de sintaxis en su publicación original. Cada nuevo estado necesita un name arg, no puede simplemente poner el comando después de los dos puntos:

mypack: pkg: - installed - pkgs: - mercurial - git cmd.run: - name: ''my first command'' cmd.run: - name: ''my second command''

Sin embargo, en realidad eso también puede fallar, porque no creo que puedas poner múltiples del mismo estado debajo de una única ID. Así que puede que tengas que dividirlos así:

first: cmd.run: - name: ''my first command'' second: cmd.run: - name: ''my second command''


Tu quieres esto:

cmd-test: cmd.run: - name: | mkdir /tmp/foo chown dan /tmp/foo chgrp www-data /tmp/foo chmod 2751 /tmp/foo touch /tmp/foo/bar

O esto, que preferiría, donde el script se descarga desde el master:

cmd-test: cmd.script: - source: salt://foo/bar.sh - cwd: /where/to/run - user: fred