2

Salt Stack を使用してプロビジョニングを調整するプロジェクトを開始しています。しかし、現在は機能していません。ログ ファイル (ミニオンの /var/log/salt/minion にあります) にはエラーが表示されていませんが、ミニオンは私が要求したことを実行していません。

基本的に、いくつかのトップ ファイルと少なくとも 2 つのミニオン構成で SaltStack を構築しています。特に、ブートストラップと呼んでいるミニオンをデバッグしています(ミニオンでソルトマスターをブートストラップすることになっているため):

master: localhost
file_client: local
file_roots:
  base:
    - /srv/salt/base
    - /srv/salt/states
  master:
    - /srv/salt/master
    - /srv/salt/master/states

私が知る限り、Salt はトップ ファイルを正常にロードし、それらを有効なオブジェクトに解析していますが、Salt はオブジェクトに応答してコマンドを実行していません。実際、ミニオンのログ ファイルには次のように書かれています。

2014-03-01 23:00:09,644 [salt.utils.jinja ][DEBUG   ] Jinja search path: '['/srv/salt/base', '/srv/salt/state
2014-03-01 23:00:09,651 [salt.template    ][DEBUG   ] Rendered data from file: /srv/salt/base/top.sls:
base:
  '*':
    - edit.vim
    - essential
    - users.root

2014-03-01 23:00:09,656 [salt.loaded.int.render.yaml][DEBUG   ] Results of YAML rendering:
OrderedDict([('base', OrderedDict([('*', ['edit.vim', 'essential', 'users.root'])]))])

すぐにジャンプすることを除いて、すべて問題ないように見えます。

2014-03-01 23:00:09,661 [salt.utils.jinja ][DEBUG   ] Jinja search path: '['/srv/salt/master', '/srv/salt/mas
2014-03-01 23:00:09,662 [salt.template    ][DEBUG   ] Rendered data from file: /srv/salt/master/top.sls:
master:
  '10.47.94.0/24':
     - match: ipcidr
     - master
     - srv.dns.unbound

2014-03-01 23:00:09,665 [salt.loaded.int.render.yaml][DEBUG   ] Results of YAML rendering:
OrderedDict([('master', OrderedDict([('10.47.94.0/24', [OrderedDict([('match', 'ipcidr')]), 'master', 'srv.dns.unbound'])]))])

ログ ファイルの残りの部分全体で、base が再び言及されることはありません。また、ベースに関連付けられているコマンド/状態が実行されていません。edit.vim、srv.dns.unbound などのログ エントリが表示されます。しかし、それらはすべて同じパターンに従います。つまり、解析して何もしません。

私は何を間違っていますか?ミニオン設定に複数の file_root があることに関係しているという漠然とした印象を受けますが、アーキテクチャがどうあるべきかがわかるまで、アーキテクチャの変更はしたくありません。(私はすでにSaltを一度使用しようとしましたが、「この」サイレントエラーに遭遇し、最初からやり直しましたが、再び遭遇しました)

4

2 に答える 2

1

これは、saltstack ドキュメントを読み始めたときの通常の混乱です。

  1. 常にマスターとミニオンのセットアップに固執し、プレイを試みたり、「マスターレスだと考えたり」することは避けてください。マスターレスに移行しても、CPU とメモリのリソースが大幅に節約されるわけではありませんが、saltstack の学習/構築プロセスがさらに混乱します。

  2. 「ソルトスタックをまっすぐに考える」よりも、常に論理図を描いてください。

  3. 質問をするときは、適切な/明示的なファイルパスと名前を常に書き留めてください。つまり、構成ファイル、状態などについては、近道をしないでください。

同様のことをしたいと思います。つまり、イントラネットのソルトマスター名 AA を使用して、データセンター D でソルトマスター X をプロビジョニングし、ソルトマスター X からミニオンのプロビジョニングを開始して、データセンター D 内のすべてのミニオンを制御します。

したがって、これを行うのは論理的です

ソルト マスター AA <-> (データセンター D

Server XYZ [Salt master X, Salt minion X to AA ],
 Server S_1 [Salt minion S_1, salt-master X ], 
 Server S_2 [Salt minion S_2, salt-master X ],
 Server S_3 [Salt minion S_3, salt-master X ]  

)

したがって、ソルト マスター AA はサーバー XYZ をミニオンとして制御します。次に、次のレベルの制御コードをマスター AA からサーバー XYZ に送信します。おそらく自動化スクリプトを実行して、AA のソルト ミニオン コネクタをアンインストールします。

于 2016-03-09T13:17:29.530 に答える