[chef] Re: Re: Re: Re: Re: Re: Re: Configure/deploy multiples apps per cookbook, how?


Chronological Thread 
  • From: Marcelo de Moraes Serpa < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Re: Configure/deploy multiples apps per cookbook, how?
  • Date: Mon, 10 Sep 2012 11:27:18 -0500

AJ, thanks for the reply,

My mistake, I forgot to clone the additional cookbooks required by rails_ghetto. To solve it, I just cloned the three dependencies (application, nginx and application_rupy) into my cookbooks directory and reloaded the virtual machine. I'm now getting another error, but it's related to how the rails_ghetto recipe is setup.

Thanks!

- Marcelo.

On Mon, Sep 10, 2012 at 1:19 AM, AJ Christensen < " target="_blank"> > wrote:
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.

§