Skip to content

Instantly share code, notes, and snippets.

@rottmanj
Created April 19, 2012 20:01
Show Gist options
  • Save rottmanj/2423774 to your computer and use it in GitHub Desktop.
Save rottmanj/2423774 to your computer and use it in GitHub Desktop.
node recipe
app = node.run_state[:current_app]
directory app['deploy_to'] do
owner app['owner']
group app['group']
mode '0755'
recursive true
end
if app['packages']
app['packages'].each do |pkg,ver|
execute "npm" do
user app['owner']
group app['group']
cwd "#{app['deploy_to']}"
command "npm install #{pkg}"
end
end
end
directory "#{app['deploy_to']}/shared" do
owner app['owner']
group app['group']
mode '0755'
recursive true
end
if app.has_key?("deploy_key")
ruby_block "write_key" do
block do
f = ::File.open("#{app['deploy_to']}/id_deploy", "w")
f.print(app["deploy_key"])
f.close
end
not_if do ::File.exists?("#{app['deploy_to']}/id_deploy"); end
end
file "#{app['deploy_to']}/id_deploy" do
owner app['owner']
group app['group']
mode '0600'
end
template "#{app['deploy_to']}/deploy-ssh-wrapper" do
source "deploy-ssh-wrapper.erb"
owner app['owner']
group app['group']
mode "0755"
variables app.to_hash
end
end
## Then, deploy
deploy_revision app['id'] do
revision app['revision'][node.chef_environment]
repository app['repository']
user app['owner']
group app['group']
deploy_to app['deploy_to']
action app['force'][node.chef_environment] ? :force_deploy : :deploy
ssh_wrapper "#{app['deploy_to']}/deploy-ssh-wrapper" if app['deploy_key']
shallow_clone true
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment