2016-11-30 6 views
1

Я хочу запустить несколько состояний с одной командой, но в качестве теста я просто использую его, чтобы увидеть, работает ли он.Запуск нескольких состояний в подкаталоге

В любом случае, когда я бегу

SUDO соль 'миньон' state.apply DirectX

это работает, как это должно установить его. Но это когда он находится в /srv/salt.

Когда я создаю новый каталог /srv/salt/windows/states и размещаю там свои файлы SLS, например DirectX.sls. Затем я создаю новую SLS под названием runall.sls в/srv/salt. Я steup runall.sls как:

base: 
    '*': 
    - windows.states.DirectX 

и запустить

state.sls SUDO соль 'ДСС' runall

я получаю:

minion: 
---------- 
      ID: base 
    Function: minion.windows.states.DirectX 
     Result: False 
    Comment: State '*.windows.states.DirectX' was not found in SLS 'runall' 
       Reason: '*.windows.states.DirectX' is not available. 
    Changes: 

Summary for minion 
------------ 
Succeeded: 0 
Failed: 1 
------------ 
Total states run:  1 
Total run time: 0.000 ms 

Я знаю, что я «Конечно, делать что-то неправильно, потому что это должно быть просто, но если бы вы могли просто указать мне в правильном направлении, было бы замечательно.

Соль Версия: 2016.3.4 (Оба миньона и магистратура) ОС: Red Hat Enterprise Linux Server 6.6 Santiago

ответ

4

Вы должны различать top files и общегосударственные файлы - как по умолчанию имеет суффикс .sls файла.

Лучшие файлы в основном используются для объединения состояний вместе с миньонами или группами миньонов, и состояния там действительно настраивают что-то конкретное.

Обычно для вашей среды есть один top.sls, который знает, какие миньоны должны иметь, что состояния. Если вы затем используете salt '*' state.highstate, все штаты, настроенные для вашего миньона, были применены.

В зависимости от ваших потребностей может быть хорошей идеей иметь разные верхние файлы. Вы можете использовать salt '*' state.top /path/to/another_top.sls для применения этого конкретного верхнего файла.

Существует также другой подход без использования файлов верхнего уровня для достижения того, о чем вы просите.

Внутри штатов находится include[1]. Вы могли бы рассмотреть вопрос о создании в /srv/salt/bundleX.sls, что просто использует директиву включения для объединения вместе ваши окна государства, как это:

include: 
    - windows.states.DirectX 
    - windows.states.Foobar 

Но если нет ничего против top.sls, рекомендуем использовать верхний файл, как описано выше.

+0

Спасибо за разъяснение, это сработало отлично! – dwr123123d12