web-dev-qa-db-ja.com

saltstack構成「トップファイルまたは外部ノードのデータ一致が見つかりません」

この質問の非常によく似たバージョンが尋ねられます ここ 、しかしその人が間違ったディレクトリに彼らのトップファイルを持っていたのでそれは完全に異なります。

3つのプロジェクトがあり、project1、project2、project3と呼びます。私の目標は、srv/saltディレクトリが次のようになるマスター/ミニオンセットアップを作成することでした。

/srv/salt
        |top.sls
        |/project1
                 |__/postgresql
                         |__init.sls
                         |__config.sql
                 |__/iptables
                         |__init.sls
                         |__config.sh
        |/project2
                 |__/Tomcat
                         |__init.sls
                         |__config.sh
                 |__/Java
                         |__init.sls
                         |__config.sh
        |/project3
                  |__/serverconfig
                         |__init.sls
                         |__config.sql
                 |__/conky
                         |__init.sls
                         |__config.sh

これを達成するために、私は/ etc/salt/masterを編集して読みました

#/etc/salt/master
file_roots:
  base:
    - /srv/salt
  project1:
    - /srv/salt/project1
  project2:
    - /srv/salt/project2
  project3:
    - /srv/salt/project3

また、各プロジェクトに関与する静的サーバーがあるため、ノードをセットアップしたいと思いました。これは、ノードを整理するための非常に直感的な方法です。

/ etc/salt/masterを編集してノードグループを表示することから始めました

#/etc/salt/master
nodegroups:
  project1: 'L@project1_server1,project1_server2,project1_server3'
  project2: 'L@project2_server1,project2_server2,project2_server3'
  project3: 'L@project3_server1,project3_server2,project3_server3'

これを設定して実行するときに、次のコマンドを使用して、project1の状態をサーバーに適用してみました。

salt -N project1 state.highstate

これは、project1_server2、project1_server3では正しく完了しますが、project1_server1では失敗します。

Project1_server1のエラーは、「トップファイルまたは外部ノードのデータが見つかりません」です。

このセットアップをより簡単に実装する方法についての提案を受け付けていますが、これが機能しない理由を知りたいと思います。助けてくれてありがとう。

EDIT1

top.slsファイルを追加する

#/srv/salt/top.sls
project1:
  project1:
    - match: nodegroup
    - postgresql
    - iptables
project2:
  project2:
    - match: nodegroup
    - Tomcat
    - Java
project3:
  project3:
    - match: nodegroup
    - serverconfig
    - conky

EDIT2

Salt -N project1grains.itemidからの出力

project1_server1:
    ----------
    id:
        project1_server1
project1_server2:
    ----------
    id:
        project1_server2:
project1_server3:
    ----------
    id:
        project1_server3:

EDIT3

正解はChrisVによって提供されました

/ etc/salt/masterのノードの構文エラーが問題でした。それを変更してから、salt-masterを再起動する必要がありました

pkill salt-master
salt-master -d
1
trueCamelType

ノードグループの定義は次のようになります。

project1: 'L@project1_server1,project1_server2,project1_server3'

ソルトごとのドキュメント: ノードグループ および 複合マッチャー

また、saltmasterデーモンの再起動が必要であることに注意してください。

2
user87664