SaltStack: appeler un seul état d'un fichier sls

12

Je n'arrive pas à appeler un seul état d'un fichier sls.

Le fichier SLS entier fonctionne

Cela marche:

salt-ssh w123 state.sls monitoring

Cela marche:

salt-ssh w123 state.show_sls monitoring

Un élément de sortie ci-dessus:

monitoring_packages:
    ----------
    __env__:
        base
    __sls__:
        monitoring.packages
    pkg:
        |_
          ----------
          pkgs:
              - python-psutil
        - installed
        |_
          ----------
          order:
              10000

Ce que j'ai essayé

Maintenant, je veux appeler uniquement monitoring_packages, pas le fichier sls entier:

Échoue:

salt:/srv # salt-ssh w123 state.sls_id monitoring_packages  monitoring
w123:
    Data failed to compile:
----------
    No matching sls found for 'monitoring' in env 'base'

Échoue:

salt:/srv # salt-ssh w123 state.single monitoring.monitoring_packages
w123:
    TypeError encountered executing state.single: single() takes at least 2 arguments (1 given)

Question

Comment appeler mon état unique monitoring_packages?

Version

salt:/srv # salt-ssh --version
salt-ssh 2015.8.3 (Beryllium)
guettli
la source

Réponses:

11

Je suis tombé sur ce message tout en essayant de comprendre comment le faire avec des appels réguliers de sel (c'est-à-dire pas de salt-ssh ).

Si vous disposez du fichier SLS suivant (foo.sls):

bar:
   file.managed:
       - source: salt://some/file

Vous pouvez exécuter la commande suivante pour exécuter uniquement cette entrée dans le fichier d'état:

salt '*' state.sls_id bar foo

Et encore une fois, je ne le savais pas non plus. J'ai trouvé la réponse dans un commentaire lors d'une discussion de groupe Google qui indiquait un engagement ici .

Mike
la source
0
salt '*target*' state.sls  monitoring.<sls_file_name> <task name> -l debug

Exemple: Supposons que j'ai un état pour elasticserach avec un fichier sls nommé settings.sls et à l'intérieur de ce fichier supposons que j'ai la tâche restart_elastic_search, maintenant je veux appeler cette tâche spécifique.

salt '*elastic*' state.sls  elasticsearch.settings restart_elastic_search -l debug
Vaibhav Jain
la source