2016-11-30 1 views
1

1つのコマンドで複数の状態を実行したいのですが、テストとして動作するかどうかを確認するだけです。サブディレクトリで複数の状態を実行する

私はstate.apply DirectXの

sudoの塩 '手先' を実行したときに、それをインストールする必要がありますようとにかく、それは動作します。しかし、これは/srv/saltに位置しています。

私は新しいディレクトリ/srv/salt/windows/statesを作成し、その前にDirectX.slsのように自分のSLSファイルを配置します。/srv/saltにrunall.sls という新しいSLSを作成します。

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

と実行

sudoの塩 'DSS' state.slsが

を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 

は私が私を知っている私のようなrunall.slsをsteupこれはシンプルであるべきだから間違ったことをしているのですが、正しい方向に向けることができれば 素晴らしいことだ。

塩のバージョン:2016年3月4日(子分とマスターの両方) OS:のRed Hat Enterprise Linux Serverの6.6サンティアゴ

答えて

4

あなたがtop filesと共通の状態ファイルを区別する必要があります - 両方のデフォルトで.slsファイル拡張子を持っています。

トップファイルは、基本的に、ミニオンまたはミニオンのグループに状態をバンドルするために使用され、状態は本当に何か特定のものを設定するためのものです。

通常、あなたの環境には、どのミニオンがどの状態を持つべきかを知っている1つのtop.slsがあります。後でsalt '*' state.highstateを使用した場合、あなたのミニオン用に設定されたすべての状態が適用されました。

必要に応じて、異なるトップファイルを持つことをお勧めします。 salt '*' state.top /path/to/another_top.slsを使用して、この特定のトップファイルを適用することができます。

あなたが求めていることを達成するためにトップファイルを使用しない別のアプローチもあります。

州内には、include[1]があります。

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

をしかし、何がtop.sls反対がない場合は上記のように、一番上のファイルを使用することをお勧めします:あなたは一緒にあなたの窓をバンドルするincludeディレクティブは次のように述べて使用すること/srv/salt/bundleX.slsに作成検討するかもしれません

+0

説明をいただきありがとうございます。これは完全に機能しました! – dwr123123d12

関連する問題