1

のsearch_queryを持つchef_vaultがありrole:myroleます。

シェフ サーバーで定期的にボールトの検索クエリを更新して、新しいノードを追加し、役割が適用されなくなったノードを削除するようにします。

これをテストするには、役割をノードに適用して実行しました。

knife vault update mevault item1 -S "role:myrole" --mode client

ノードがボールト クライアント リストに表示されました。その後、ノードからロールを削除してコマンドを再度実行しましたが、ノードはまだボールト クライアント リストに表示されます。--clean スイッチを使用してこのコマンドも試しましたが、クライアント リストからノードが削除されず、refresh コマンドでは機能しないようです。

clean スイッチを使用した vault update コマンドは機能しますが、検索クエリをハード コードする必要があります。vault アイテムに既に適用されている検索クエリを更新したいだけです。

4

2 に答える 2

2

を実行する必要がありますknife rotate。これにより、共有キーが更新され、検索クエリに一致しないすべてのホストが除外されます。

knife vault rotate keys VAULT ITEM

シークレット自体は共有キーを使用して暗号化され、すべてのノードがITEM_keysデータ バッグ アイテムを介して復号化できます。したがって、このキーをローテーションする必要があります。

于 2016-07-17T18:38:52.383 に答える
1

わかりましたので、おそらく解決策があると思いますが、好きではありません。

clean スイッチは更新時に機能せず、 --clean を指定した update コマンドはノードを削除しますが、コマンドでクエリをハードコーディングしないと新しいノードを追加しません (vault が構成されたクエリを再実行したいだけです)。この種の私が望むことを行います:

knife vault update vault123 item1 --mode client --clean
knife vault refresh vault123 item1 --mode client

クライアントリスト全体を吹き飛ばして再追加するのはちょっと怖いことではありませんが、これが多くのノードにとってどれほど安全であるかについても心配しています. 私はこれをスケジュールして終わらせることができますが、これはばかげていると思います.

あるいは、スクリプトでボールトから検索クエリを取得し、それを使用してボールトの更新を実行することもできます。

誰かが提案できるより良い方法はありますか...

于 2016-07-17T19:21:12.450 に答える