Skip to content

Instantly share code, notes, and snippets.

@Atalanta
Forked from tfheen/gist:800147
Created January 28, 2011 12:07
Show Gist options
  • Save Atalanta/800173 to your computer and use it in GitHub Desktop.
Save Atalanta/800173 to your computer and use it in GitHub Desktop.
users = search(:users, "repos:*")
shared_repos = search(:git_repos, "url:*")
users.each do |u|
username = u['id']
u["repos"].each do |target, repo|
git "/home/#{username}/#{target}" do
repository repo['repo']
reference repo['revision']
action :checkout
user username
end
end
shared_repos.each do |shared_repo|
git "/home/#{username}/#{shared_repo['id']}" do
repository shared_repo["url"]
reference shared_repo["revision"]
action :checkout
user username
ssh_wrapper "ssh -i /home/#{username}/.ssh/#{u['git_key']['name']}"
only_if {File.exists?("/home/#{username}/.ssh/#{u['git_key']['name']}")}
end
end
end
{ "id": "bert",
"git_key": {
"name": "git-key-rsa",
"public":"ssh-rsa ABCDEFG"
},
% knife data bag show git_repos test_lab
{
"url": "git@git.dtotc.me:test_lab.git",
"id": "test_lab",
"revision": "HEAD"
}
[Fri, 28 Jan 2011 12:05:01 +0000] DEBUG: Ran git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab returned 128
[Fri, 28 Jan 2011 12:05:01 +0000] ERROR: git[/home/jon/test_lab] (/var/chef/cache/cookbooks/workstation/recipes/default.rb:42:in `block (2 levels) in from_file') had an error:
git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab returned 128, expected 0
---- Begin output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
STDOUT: Initialized empty Git repository in /home/jon/test_lab/.git/STDERR: error: cannot run ssh -i /home/jon/.ssh/id_rsa: No such file or directory
fatal: unable to fork
---- End output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:184:in `handle_command_failures'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:131:in `run_command'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:96:in `clone'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:40:in `action_checkout'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource.rb:395:in `run_action'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:53:in `run_action'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block (2 levels) in converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `each'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block in converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:94:in `block in execute_each_resource'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:92:in `execute_each_resource'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:84:in `converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:268:in `converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:171:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:222:in `block in run_application'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `loop'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `run_application'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application.rb:62:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/bin/chef-client:26:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `<main>'
[Fri, 28 Jan 2011 12:05:01 +0000] ERROR: Running exception handlers
[Fri, 28 Jan 2011 12:05:01 +0000] ERROR: Exception handlers complete
[Fri, 28 Jan 2011 12:05:01 +0000] DEBUG: Re-raising exception: Chef::Exceptions::Exec - git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab returned 128, expected 0
---- Begin output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
STDOUT: Initialized empty Git repository in /home/jon/test_lab/.git/STDERR: error: cannot run ssh -i /home/jon/.ssh/id_rsa: No such file or directory
fatal: unable to fork
---- End output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:184:in `handle_command_failures'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:131:in `run_command'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:96:in `clone'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:40:in `action_checkout'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource.rb:395:in `run_action'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:53:in `run_action'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block (2 levels) in converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `each'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block in converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:94:in `block in execute_each_resource'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:92:in `execute_each_resource'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:84:in `converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:268:in `converge'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:171:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:222:in `block in run_application'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `loop'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `run_application'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application.rb:62:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/bin/chef-client:26:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `<main>'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:184:in `handle_command_failures': git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab returned 128, expected 0 (Chef::Exceptions::Exec)
---- Begin output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
STDOUT: Initialized empty Git repository in /home/jon/test_lab/.git/STDERR: error: cannot run ssh -i /home/jon/.ssh/id_rsa: No such file or directory
fatal: unable to fork
---- End output of git clone git@git.dtotc.me:test_lab.git /home/jon/test_lab ----
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/mixin/command.rb:131:in `run_command'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:96:in `clone'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/provider/git.rb:40:in `action_checkout'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource.rb:395:in `run_action'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:53:in `run_action'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block (2 levels) in converge'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `each'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:89:in `block in converge'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:94:in `block in execute_each_resource'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/resource_collection.rb:92:in `execute_each_resource'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/runner.rb:84:in `converge'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:268:in `converge'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/client.rb:171:in `run'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:222:in `block in run_application'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `loop'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application/client.rb:212:in `run_application'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/lib/chef/application.rb:62:in `run'
from /usr/local/rvm/gems/ruby-1.9.2-p136/gems/chef-0.9.12/bin/chef-client:26:in `<top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `load'
from /usr/local/rvm/gems/ruby-1.9.2-p136/bin/chef-client:19:in `<main>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment