- From: AJ Christensen <
>
- To:
- Subject: [chef] Re: Re: Re: Re: Re: Re: Configure/deploy multiples apps per cookbook, how?
- Date: Mon, 10 Sep 2012 18:19:47 +1200
Furthermore these error messages have been improved in 10.14.0. I'd
highly recommend you upgrade.
Regards,
AJ
On 10 September 2012 18:18, AJ Christensen
<
>
wrote:
>
On 10 September 2012 18:13, Marcelo de Moraes Serpa
>
<
>
>
wrote:
>
> Igor,
>
>
>
> I've been trying to get rails_ghetto up and running in a test Vagrant VM,
>
> but I'm having a hard time - mainly because I'm still quite new to all
>
> those
>
> chef[solo] concepts, I'd say. If you could give me a hand, I'd be really
>
> grateful. Here's the portion of my Vagrantfile that sets up the chef-solo
>
> integration:
>
>>
>
>>
>
>> config.vm.provision :chef_solo do |chef|
>
>> chef.cookbooks_path =
>
>> "/Users/fullofcaffeine/workspace/code/chef-repo/cookbooks"
>
>> chef.roles_path =
>
>> "/Users/fullofcaffeine/workspace/code/chef-repo/roles"
>
>> chef.data_bags_path =
>
>> "/Users/fullofcaffeine/workspace/code/chef-repo/data_bags"
>
>> #run list
>
>> chef.add_recipe("rails_ghetto::user")
>
>> chef.add_recipe("rails_ghetto::deploy")
>
>> chef.add_recipe("rails_ghetto::nginx_sites_enable")
>
>>
>
>> #chef.add_recipe("php")
>
>> chef.json = { "rails_ghetto" => {
>
>> "deployment_user" => "deploy",
>
>> "deployment_group" => "deploy",
>
>> "apps_root" => "/var/www/apps",
>
>> "libs" => ["libxslt-dev","libxml2-dev"],
>
>> "applications" => {"sample" => {
>
>> "repository" =>
>
>> "
:fullofcaffeine/raks.git",
>
>> "revision" => "master",
>
>> "deploy_key" => "/home/root/.ssh/github",
>
>> "unicorn_port" => "8080",
>
>> "server_name" => "production.example.com",
>
>> "compile_assets" => "true",
>
>> "run_migrations" => "true",
>
>> "rails_environment" => "production",
>
>> "database" => { "adapter" => "postgresql",
>
>> "database" => "sample2",
>
>> "username" => "root",
>
>> "password" => "changeit" },
>
>> }
>
>> },
>
>> "recipes" =>
>
>> ["rails_ghetto::user","rails_ghetto::deploy","rails_ghetto::nginx_sites_enable"]
>
>> }
>
>> }
>
>>
>
>> end
>
>
>
>
>
> There are some fields that I need to change, but I wanted to let it run
>
> first and then start the trial and error. However, it just fails with a
>
> message that I can't interpet (tried googling but didn't find anything
>
> useful). Here's the stacktrace:
>
>
>
>> Generated at Mon Sep 10 06:03:34 +0000 2012
>
>> NameError: Cannot find a resource for application on ubuntu version 12.04
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/resource_platform_map.rb:129:in
>
>> `get'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/resource.rb:667:in
>
>> `resource_for_platform'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/resource.rb:684:in
>
>> `resource_for_node'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:58:in
>
>> `method_missing'
>
>>
>
>
>> /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rails_ghetto/recipes/deploy.rb:9:in
>
>> `from_file'
>
>
Looks like this recipe here ^ is calling an "application" local ivar
>
or resource which doesn't exist, on line 9.
>
>
HTH
>
>
--AJ
>
>
>>
>
>> /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rails_ghetto/libraries/default.rb:7:in
>
>> `call'
>
>>
>
>> /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rails_ghetto/libraries/default.rb:7:in
>
>> `rails_applications'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/node/attribute.rb:136:in
>
>> `call'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/node/attribute.rb:136:in
>
>> `each'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/node/attribute.rb:129:in
>
>> `each'
>
>>
>
>> /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rails_ghetto/libraries/default.rb:4:in
>
>> `rails_applications'
>
>>
>
>> /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rails_ghetto/recipes/deploy.rb:8:in
>
>> `from_file'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/cookbook_version.rb:578:in
>
>> `load_recipe'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/mixin/language_include_recipe.rb:46:in
>
>> `load_recipe'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/mixin/language_include_recipe.rb:33:in
>
>> `include_recipe'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/mixin/language_include_recipe.rb:27:in
>
>> `each'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/mixin/language_include_recipe.rb:27:in
>
>> `include_recipe'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/run_context.rb:72:in
>
>> `load'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/run_context.rb:69:in
>
>> `each'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/run_context.rb:69:in
>
>> `load'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/client.rb:199:in
>
>> `setup_run_context'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/client.rb:162:in
>
>> `run'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/application/solo.rb:207:in
>
>> `run_application'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/application/solo.rb:195:in
>
>> `loop'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/application/solo.rb:195:in
>
>> `run_application'
>
>>
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/../lib/chef/application.rb:70:in
>
>> `run'
>
>> /opt/vagrant_ruby/lib/ruby/gems/1.8/gems/chef-0.10.10/bin/chef-solo:25
>
>> /opt/vagrant_ruby/bin/chef-solo:19:in `load'
>
>> /opt/vagrant_ruby/bin/chef-solo:19
>
>
>
>
>
> Any ideas?
>
>
>
> Thanks in advance!
>
>
>
> - Marcelo.
>
>
>
> On Thu, Aug 16, 2012 at 8:56 PM, Marcelo de Moraes Serpa
>
> <
>
>
> wrote:
>
>>
>
>> Wow! Thanks for the comprehensive reply Andrea!
>
>>
>
>> I'll try those suggestion tonight. @Igor, I'll check out rails_ghetto as
>
>> well! I'll share my experience here afterwards.
>
>>
>
>> Meanwhile, I have a quick question regarding the approach of Bryan
>
>> Baugher, in this thread:
>
>>
>
>> http://lists.opscode.com/sympa/arc/chef/2012-07/msg00355.html
>
>>
>
>> How would that work?
>
>>
>
>> Thank you *very much* again for the replies!
>
>>
>
>> - Marcelo.
>
>>
>
>> On Thu, Aug 16, 2012 at 5:22 AM, Igor Afonov
>
>> <
>
>
>> wrote:
>
>>>
>
>>> Andrea,
>
>>>
>
>>> Wow, thanks, I've totally missed that I can do it like that. I thought
>
>>> that there maybe a better way to do it but totally missed most obvious
>
>>> way.
>
>>>
>
>>> Igor
>
>>>
>
>>> Отправлено при помощи Sparrow
>
>>>
>
>>> четверг, 16 августа 2012 г. в 11:38, Andrea Campi написал:
>
>>>
>
>>> Igor,
>
>>>
>
>>> On Thu, Aug 16, 2012 at 9:36 AM, Igor Afonov
>
>>> <
>
>
>>> wrote:
>
>>>
>
>>> Hi Marcelo,
>
>>>
>
>>> I've already mentioned in this list but I have a cookbook which is
>
>>> basically
>
>>> what you need. It manages deployment of several very similar rails
>
>>> applications. As Andrea mentioned if you have different applications it
>
>>> is
>
>>> better to have a separate cookbooks for them. But for your case here is
>
>>> the
>
>>> cookbook - https://github.com/iafonov/rails_ghetto. I'm 100% sure that
>
>>> you'd
>
>>> have to change it for your needs. I'm not a big fan of data bags (this
>
>>> cookbook was initially created for chef-solo) but if you are - you can
>
>>> quite
>
>>> easily alter it to use data bags instead of attributes.
>
>>>
>
>>>
>
>>> I had a look at rails_ghetto some time ago and I like it. If anything,
>
>>> it shows a big benefit of the "new" application cookbook: you were
>
>>> able to reuse its LWRPs to add functionality on top.
>
>>>
>
>>>
>
>>> One question though: how come you rolled your own nginx_sites_enable
>
>>> instead of using application_nginx? Any missing functionality there?
>
>>> At a cursory glance it looks like a perfect match, you just need to
>
>>> specify your own template.
>
>>> I.e. in your recipes/deploy.rb:
>
>>>
>
>>> rails_applications do |name, app|
>
>>> application name do
>
>>> …
>
>>> nginx do
>
>>> template "nginx_site.erb"
>
>>> cookbook_name "rails_ghetto"
>
>>> end
>
>>> end
>
>>> end
>
>>>
>
>>> And you'd be pretty much set.
>
>>>
>
>>> Did you try that and hit any roadblock?
>
>>>
>
>>> Andrea
>
>>>
>
>>>
>
>>
>
>
Archive powered by MHonArc 2.6.16.