SaltStack: Вызвать одно состояние файла sls

Я не могу вызвать одно состояние файла sls.

Работает весь файл sls

Это работает:

salt-ssh w123 state.sls monitoring

Это работает:

salt-ssh w123 state.show_sls monitoring

Один элемент из вышеприведенного вывода:

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

Что я пробовал

Теперь я хочу вызвать только monitoring_packages , а не весь файл sls:

Ошибка:

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'

Ошибка:

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

Вопрос

Как вызвать мой одно состояние monitoring_packages ?

Версия

salt:/srv # salt-ssh --version
salt-ssh 2015.8.3 (Beryllium)
12
задан 31 May 2016 в 10:10
3 ответа

Похоже, это уже известная проблема: https://github.com/saltstack/salt/issues/29253

Это работает вне salt-ssh. Похоже, в эту оболочку нужно добавить функцию.

1
ответ дан 2 December 2019 в 21:38

Я наткнулся на этот пост, пытаясь понять, как это сделать с помощью обычных вызовов salt (т.е. не salt-ssh ).

Если у вас есть следующий файл SLS (foo.sls):

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

Вы можете запустить следующую команду, чтобы выполнить только эту запись в файле состояния:

salt '*' state.sls_id bar foo

И опять же, я этого тоже не знал. Я нашел ответ в комментарии в групповом обсуждении Google , который указывал на фиксацию здесь .

10
ответ дан 2 December 2019 в 21:38
salt '*target*' state.sls  monitoring.<sls_file_name> <task name> -l debug

Пример: Предположим, у меня есть состояние для elasticserach с файлом sls с именем settings.sls и внутри этого файла, предположим, у меня есть задача restart_elastic_search, теперь я хочу вызвать эту конкретную задачу.

salt '*elastic*' state.sls  elasticsearch.settings restart_elastic_search -l debug
0
ответ дан 2 December 2019 в 21:38

Теги

Похожие вопросы