誰かがシェフソロを理解するのを手伝ってくれませんか。それでも、マシンのプロビジョニングを実行するために自分のマシンでchef-soloを実行する必要があるのか、プロビジョニングした新しいマシンに最初にマシンをプロビジョニングしてソロをインストールする必要があるのか、その部分を理解していませんでした。エンドツーエンドのフローを理解する必要があります。理解を深めるのを手伝ってください。
2 に答える
AWSCloudFormationとOpscodeChef.pdfの統合でAWS環境でChef-Soloを使用する方法についての詳細な説明があります
Chef Soloを使用すると、Chefサーバーに依存することなくChefクックブックとロールをデプロイできます。Chef Soloは、RubyGemパッケージを介してインストールできます。ただし、他の多くの依存パッケージをインストールする必要があります。リソースメタデータとAWSCloudFormationヘルパーを使用することで、Cloud-initを介してベースAMIにChefSoloをデプロイできます。
上記のPDFで提供されているクラウドフォーメーションを使用するか、ファイルを作成してスクリプト(このテンプレートに埋め込まれている)を自分で実行することができます。
chef-soloとvagrantを使用して、ターゲットのLinuxディストリビューションがローカルマシンでどのように動作するかをテストすることもできます。ただし、あなたの質問はAWSのエンドツーエンドに関するものなので、ここで説明します。
エンドツーエンドでは、ターゲットマシンに少なくとも次の依存関係が必要です。
ruby、gem chef、ssh、git、またはコードをvmに取り込むその他の方法。
マシンにSSHで接続し、ターゲットマシンで使用するレシピを取得し、少なくともいくつかの属性、クックブックの場所、およびいくつかのレシピを含む実行リストを指定するいくつかのパラメーターを使用してchef-soloを実行します。ターゲットマシンに適用するロール。以下は、aptレシピとmongoレシピを取得するための例です(https://github.com/opscode-cookbooks/aptおよびhttps://github.com/edelight/chef-mongodb)...これらを/にクローンしましたターゲットマシン上のopt/devopsの場所。
chef-solo -c solo.rb -j node.json
solo.rbの内容
file_cache_path "/opt/devops/log"
cookbook_path "/opt/devops/cookbooks"
node.jsonの内容
{
"node": {
"vm_ip": [ "192.168.33.10" ],
"myProject": {
"git_revision":"bzrDevel",
}
},
"run_list": ["recipe[apt]","recipe[mongodb]" ]
}