ezmobius / chef-deploy Goto Github PK
View Code? Open in Web Editor NEWChef Resources and Providers for deploying ruby web apps without capistrano
License: Apache License 2.0
Chef Resources and Providers for deploying ruby web apps without capistrano
License: Apache License 2.0
The cleanup action in chef-deploy should be configurable, like capistrano, to keep a configurable number of releases or disable the release cleanup. Also, capistrano's default is to keep the last 5 releases, but chef-deploy is cleaning up releases >= 5 instead of > 5 so it's keeping only 4 releases by default.
Here my deploy block:
deploy "/srv/#{appname}" do
repo "###"
svn_username "###"
svn_password "###"
scm 'subversion'
branch node[:rails_app_name][:branch]
user "root"
group "root"
migrate node[:rails_app_name][:migrate]
migration_command node[:rails_app_name][:migrate_command]
environment node[:rails_app_name][:environment]
revision node[:rails_app_name][:revision]
action node[:rails_app_name][:action].to_sym
restart_command "touch tmp/restart.txt"
action :deploy
end
I always get this error:
"/var/lib/gems/1.8/gems/chef-0.8.6/bin/../lib/chef/resource.rb:74:in method_missing': undefined method
scm' for Chef::Resource::Deploy (NoMethodError)"
Hope to save people some time here. This gem no longer works with the newer releases of Chef.
Using the given example I got this error:
ArgumentError: wrong number of arguments (3 for 2)
This is caused by line 23 in /lib/chef-deploy.rb
class Deploy < Chef::Resource
```
def initialize(name, collection=nil, node=nil)
super(name, collection, node)
```
The super method, defined in Chef itself, now expects different arguments.
Having a line like this -- notifies :restart, resources(:service => 'delayed_job'), :delayed -- doesn't seem to work with chef-deploy. Even when the cached copy has been updated, my resource doesn't receive the notification.
Would obviously be handy to be able to use the notifies system.
Generated at Thu Jan 26 09:25:06 -0500 2012
ArgumentError: wrong number of arguments (3 for 2)
/usr/lib/ruby/gems/1.8/gems/chef-deploy-0.2.5/lib/chef-deploy.rb:23:in initialize' /usr/lib/ruby/gems/1.8/gems/chef-deploy-0.2.5/lib/chef-deploy.rb:23:in
initialize'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:61:in new' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:61:in
method_missing'
/tmp/chef-solo/cookbooks/sympleobjects/recipes/default.rb:31:in from_file' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/cookbook_version.rb:578:in
load_recipe'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/mixin/language_include_recipe.rb:40:in include_recipe' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/mixin/language_include_recipe.rb:27:in
each'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/mixin/language_include_recipe.rb:27:in include_recipe' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/run_context.rb:72:in
load'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/run_context.rb:69:in each' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/run_context.rb:69:in
load'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/client.rb:195:in setup_run_context' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/client.rb:159:in
run'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/application/solo.rb:192:in run_application' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/application/solo.rb:183:in
loop'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/application/solo.rb:183:in run_application' /usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/../lib/chef/application.rb:67:in
run'
/usr/lib/ruby/gems/1.8/gems/chef-0.10.6/bin/chef-solo:25
/usr/bin/chef-solo:19:in `load'
/usr/bin/chef-solo:19
The simplest example is changing branches (with SVN). The URL of the repo changes but since the directory already exists on the server it just updates the cached-copy. Not sure if this is SVN-related only.
The basic fix would be to compare the cached-copy repo to the repository in the configuration. If they don't match, delete the cached copy and export.
Wanted to get it noted here so that it doesn't get lost (since I can't fix it right now)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.