Ansibleでは、シェルスクリプトを使用して、構成するホストのリストを提供できます。Chefでは、ChefServerが同様の機能を提供することを知っていました。
ただし、この機能だけを提供するために重いサーバーをインストールしたくないので、AnsibleのようなChefで同様のことを実行できるようにするための回避策はありますか?
Chefサーバーがchefソロよりも提供する重要な点は、特定のクエリに基づいてサーバー/ノードを見つけることができる検索機能です。
この機能を取得するために独自のChefサーバーをホストしたくないことを理解しています。それを提供するための可動部品がたくさんあります、erlangとrabbitmqそして...
幸いなことに chef zero 、または現在知られているchef-clientの--localモードは検索をサポートし、それ自体のミニサーバーのように機能しますが、一時的なものです。
正しいディレクトリ構造のjsonnode/environment/roleファイルから読み取り、chefの実行が完了するまでAPIエンドポイントとして機能します。
この構造では、レシピで検索を使用して他のノードを見つけることに加えて、knife search --local 'role:web-server AND chef_environment:production'
を使用して一致するノードを一覧表示したり、knife ssh --local 'role:web-server AND chef_environment: production' 'ssh_command'
を使用してすべてのサーバーでコマンドを実行したりできます。
したがって、これは正確にAnsibleスタイルの動的インベントリシステムではありませんが、それを使用して多くのことを実行できます。