2013-02-23 2 views
6

Si je dois exécuter les 3 commandes suivantes, comment puis-je les grouper de sorte que je n'ai qu'à en appeler une?Commandes de groupement Saltstack

salt '*' git.fetch cwd=/var/git/myproject opts='--all' user=git 
salt '*' git.pull cwd=/var/git/myproject opts='origin master' 
salt '*' nginx.signal reload 

Je peux utiliser un tissu pour mettre ceux en une seule fonction qui pourrait dire deploy accepter un nom de sbire ensuite traité par maître, mais je me demande si saltstack a quelque chose intégré?

+0

Avez-vous pensé à créer un état dans lequel vous exécutez simplement des commandes, mais devez attendre qu'un autre état se termine et ainsi de suite? – tudoricc

+0

pourquoi le vote à la baisse? C'est une vieille question, maintenant un jour je créerais un fichier d'état personnalisé et passerais comme param au module 'state.sls'. – Marconi

Répondre

6

Ceci est un bon candidat pour un module personnalisé.

Vous pouvez lire sur la création de modules personnalisés ici: http://docs.saltstack.com/ref/modules/index.html. Placez votre module personnalisé dans/srv/sel/_modules (l'emplacement par défaut) puis exécutez

salt \* saltutil.sync_modules 

Votre module sera alors disponible pour fonctionner sur vos sbires.

Si votre module est nommé « déployer » et la fonction est « monsite », votre commande personnalisée ressemblera à ceci:

salt \* deploy.mysite 

Si vous souhaitez cibler un sbire spécifique, il ressemblera à ceci :

salt 'minion_name' deploy.mysite 
+0

Vous pouvez également les exécuter en un seul passage: salt '*' git.fetch, git.pull, nginx.signal "cwd =/var/git/monprojet opts = '- all' users = git", "cwd =/var/git/myproject opts = 'maître d'origine'", "recharger" –