Chefのドキュメントを2回読みました。彼らはスキップしますが、基本的であり、chef-serverを使用した複雑なデプロイメントにジャンプするため、私はまだその概念に頭を悩ませることはできません。
Chef-soloとおそらくknifeを使用して、サーバーをプロビジョニングしてデプロイする簡単な方法はありますか?
私は間違っているかもしれませんが、私の料理本が準備されているようです、これは非常に単純なはずです。
knife rackspace server create --flavor 1 --image 112
これでサーバーがプロビジョニングされます。オプションで--run-list "recipe [mything]"を渡すことができますが、〜/ my_cookbooks内のクックブックは実際にサーバーにどのように到達しますか?手動で転送する必要がありますか?それは逆効果のようです。
Chef-soloを使用する場合、ナイフを使用することはできません。 Knifeはchef-serverのAPIクライアントであり、いくつかの追加のユーティリティシュガー(あなたが言及したknife rackspace server create
など)があります。
Chef-soloを使用してサーバーを構成するには、chefリポジトリをサーバーにコピーし、そこでssh上でchef-soloを実行する必要があります。自動的に実行されることがわかっている既製のスクリプトやナイフプラグインはありません。
コマンドknife rackspace server create
は、新しいRackspaceサーバーを作成し、knife bootstrap
を呼び出して、knifeが認識しているchef-server用に初期化します。 chef-soloでは簡単には機能しません。
技術的には、knife bootstrap
、したがってknife rackspace server create
は、カスタムbootstrapテンプレートを作成することで、chef-clientを初期化する代わりに、chef-soloと連携するように強制できます。 chefリポジトリをダウンロードしてchef-soloを実行します-knife bootstrap --help
、その wikiページ 、または詳細についてはソースを参照してください。chef-clientをインストールするためのサンプルテンプレートを見ることができます ここ =。ただし、これは高度な機能であり、十分に文書化されていません。
独自のchef-serverのインストールと管理の複雑さを処理したくない場合は、Chef-serverSAASオファリングで最大3ノードまで無料のOpscodeのHostedChefの無料レイヤーを使用できます。とにかくサーバーで本格的な作業を開始することをお勧めします-chef-soloはまともなbootstrapシェルスクリプト、それ以上ではありません、そしてあなたは次のような多くの重要な/興味深い機能を見逃しています検索およびデータバッグ。これにより、データ駆動型の方法でサーバーを構成できます。
knife-solo プラグインを確認してください。このプラグインは、リモートサーバーにchef-soloを自動的にインストールし、クックブックをアップロードしてから、chef-soloを実行できます。これは基本的に、この質問に答えた他の人々が提案したことを自動化します。
各chef-soloを実行する前に、クックブックを(ftp/scp経由で)転送するか、cookbook_pathをネットワーク共有にポイントすることにより、そのターゲットマシンにクックブックが存在する必要があります。
クックブックを自動的にダウンロードする場合は、ChefServerを実行する必要があります。独自のchefサーバーを実行するか、OpsCodeからホストされているサーバーを使用するかはあなた次第ですが、それは必要です。
シェフソロを始めるための最も基本的な方法。
例は考案されているので、変更する必要があります。
シェフソロの詳細:
Chef Soloは便利ですが、実際にはChefの使用方法は限られています。ノード自体の外部にノードに関する情報を公開しないため、ChefServerの場合ほど簡単に動的検出やデータ駆動型インフラストラクチャ管理に使用することはできません。