2

柱の値に一致する状態ファイルを作成しようとしていますが、辞書の柱の属性の値に一致する方法 (または可能かどうか) がわかりません。salt.module.match API docs はそれについて詳しく説明しておらず、明白なアプローチはどれも実りがありません:

root@ms-tapir:~ # salt clowder saltutil.refresh_pillar
clowder:
    None
root@ms-tapir:~ # salt clowder pillar.item wsgi_still
clowder:
    ----------
    wsgi_still:
        ----------
        foo:
            bar
        nginx_default:
            ----------
            directives:
                - return 444
root@ms-tapir:~ # salt clowder match.pillar 'wsgi_still["foo"]:bar'
clowder:
    False
root@ms-tapir:~ # salt clowder match.pillar "wsgi_still['foo']:bar"
clowder:
    False
root@ms-tapir:~ # salt clowder match.pillar "wsgi_still.foo:bar"
clowder:
    False

状況をデバッグする私の試みは、match.py​​ に a を貼り付けてpdb_trace()、フォアグラウンドで salt-minion を実行するところまで行きましたが、それはまったく役に立たず、おそらく、Salt と ØMQ との奇妙な相互作用が原因で、デバッグ シェルの代わりに通信エラーが発生しました。:)

/srv/salt/top.sls明確にするために、目標は私のファイルに次のようなものを入れることです:

base:
  'wsgi_still["foo"]:bar':
    - match: pillar
    - wsgi_distiller

このミニオンの柱にいるとき、私のセットアップで動作することを確認しsalt clowder match.pillar "foo:bar"ました(リターンTrue) 。foo: bar

また、これは別の角度から見た同じ問題だと思います。

root@ms-tapir:~ # salt -I "foo:bar" test.ping
clowder:
    True
root@ms-tapir:~ # salt -I "wsgi_still['foo']:bar" test.ping

これまでに受け取った唯一の提案は「-I」フラグを使用するためです。:)

4

1 に答える 1