タグ付けされた質問 「chef-solo」

3
chef-soloではなくchef-serverを実行する利点は何ですか?
私は自分のチームの自動展開ソリューションを検討しており、過去数日間Chefで遊んでいます。chef-soloを使用して、ベースのRed Hat VMから実行するシンプルなWebアプリを取得できました。 最終的な目標は、Chef(または別のシステム)を使用して、ビルドを実行するときにクラウドにアプリケーショントポロジを自動的に展開することです。プロセスは基本的に次のように実行されます。 Webアプリのコード、依存関係、およびシェフクックブックはSCMに保存されます ビルドが実行され、イメージを取得してテストするための単一のパッケージが作成されます 次に、ビルドエンジンは、シェフクライアントを実行してパッケージをインストールする新しいクラウドイメージをデプロイします。 イメージは、SCMまたはChefサーバーからクックブックを取得し、すべてをインストールして起動して実行します Chef Serverを実行するための利点や使用例は何ですか? chef-soloを使用し、SCMからクックブックをプルするスクリプトを使用する場合と比べて、Chef ServerがSCMからクックブックを保持して取得することには大きな利点がありますか?


2
Chef:テンプレートがまだ存在しない場合、テンプレート用のディレクトリを作成します
テンプレートを作成している場合、ディレクトリが存在することをどのように確認できますか?例えば: template "#{node[:app][:deploy_to]}/#{node[:app][:name]}/shared/config/database.yml" do source 'database.yml.erb' owner node[:user][:username] group node[:user][:username] mode 0644 variables({ :environment => node[:app][:environment], :adapter => node[:database][:adapter], :database => node[:database][:name], :username => node[:database][:username], :password => node[:database][:password], :host => node[:database][:host] }) end コピー先/var/www/example/shared/configとして存在しないため、これは失敗database.ymlします。puppetを使用してディレクトリの存在を「保証」する方法を考えています。
16 chef  chef-solo 

2
単一インスタンスでchef-soloを使用する理由
マルチサーバー環境でChefとpuppetを使用する利点を理解しています。多くのサーバーにまたがって設定を適用および説明するのに最適です。 しかし、あなたが単一のサーバーを持っているとしましょう、chef-solo単にサーバーを手動で構成するよりも優れている点は何ですか?私はシェフが大好きですが、chef-soloのセットアップに時間をかけることが1つまたは2つのサーバーアーキテクチャの面倒な価値がある理由は考えられませんが、人々はそうしているようです。
9 chef  chef-solo 

2
Chef(solo)レシピをループする正しい方法は何ですか?
誰かが私にシェフのしくみを説明してくれませんか?これはかなり大まかな質問なので、絞り込むために、ユーザーのリストをループして、まだ存在しない場合はそれぞれを作成するこの非常に単純なレシピを持っています。それは動作しません。 私が言うことができることから、ループは期待通りに起こっているようです。ループが完了すると、各ユーザーを作成するためのbashコマンドが実行されます(ループの各反復ごとに1回)。ただし、bashコマンドを実行すると、最初のループの繰り返しからのユーザー値しか表示されないように見えます。 この例のように変数データをループするレシピを書く正しい方法は何ですか? ここにレシピがあります: node[:users].each do |user| puts "in loop for #{user['username']}" bash "create_user" do user "root" code do puts "running 'useradd' for #{user['username']}" "useradd #{user['username']}" end not_if do puts "checking /etc/passwd for #{user['username']}" "cat /etc/passwd | grep #{user['username']}" end end end 私は次の設定でVagrantを使用してこれをテストしています: Vagrant::Config.run do |config| config.vm.box = "precise32" config.vm.box_url …
8 chef  chef-solo 

1
必須属性のデフォルト値はありません
テンプレートのように、その属性に適切なデフォルトがない場合にリソースで属性を使用するための推奨されるアプローチは何ですか。属性値は実行時に提供されることが期待されています。そうでない場合、シェフレシピの実行はエラーになります。 テンプレートに適用したときの属性値が空の文字列になっている方法。 /recipes/default.rb template "/var/tmp/my_script.sh" do source "my_script.erb" mode "0755" variables({ :url => node['environment']['url'] }) end /templates/default/my_script.erb #!/bin/bash echo "The url is: <%= @url %>" 結果の/var/tmp/my_script.shファイルは次のようになります。 #!/bin/bash echo "The url is: " しかし、私はそれがエラーになることを望みます。何かアドバイス?
8 chef  chef-solo 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.