Class: Gaptool::ChefrunCommand

Inherits:
Clamp::Command
  • Object
show all
Defined in:
lib/gaptool-client.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/gaptool-client.rb', line 190

def execute
  if !instance.nil?
    nodes = [$api.getonenode(instance)]
  else
    nodes = $api.getenvroles(role, environment)
  end
  nodes.peach do |node|
    json = {
      'this_server' => "#{role}-#{environment}-#{node['instance']}",
      'role' => role,
      'environment' => environment,
      'app_user' => node['appuser'],
      'run_list' => [ "recipe[main]" ],
      'hostname' => node['hostname'],
      'instance' => node['instance'],
      'zone' => node['zone'],
      'itype' => node['itype'],
      'apps' => eval(node['apps'])
    }.to_json
    commands = [
      "cd ~admin/ops; git pull",
      "echo '#{json}' > ~admin/solo.json",
      "sudo chef-solo -c ~admin/ops/cookbooks/solo.rb -j ~admin/solo.json"
    ]
    sshcmd(node, commands)
  end
end