Capistrano sample
require 'xp5k'
XP5K::Config.load
@myxp = XP5K::XP.new(:logger => logger)
@myxp.define_job({
:resources => "nodes=2,walltime=1",
:site => XP5K::Config[:site] || 'rennes',
:types => ["deploy"],
:name => "job1",
:command => "sleep 86400"
})
@myxp.define_job({
:resources => "nodes=6,walltime=1",
:site => XP5K::Config[:site] || 'rennes',
:types => ["deploy"],
:name => "job2",
:roles => [
XP5K::Role.new({ :name => 'server', :size => 1 }),
XP5K::Role.new({ :name => 'nodes', :size => 5 })
]
:command => "sleep 86400"
})
@myxp.define_deployment({
:site => XP5K::Config[:site] || 'rennes',
:environment => "squeeze-x64-nfs",
:jobs => %w{ job1 },
:roles => %w{ server }
:key => File.read(XP5K::Config[:public_key])
})
role :job1 do
@myxp.job_with_name('job1')['assigned_nodes'].first
end
role :job2 do
@myxp.job_with_name('job2')['assigned_nodes'].first
end
role :nodes do
@myxp.role_with_name('nodes').servers
end
desc 'Submit jobs'
task :submit do
@myxp.submit
end
desc 'Deploy with Kadeplopy'
task :deploy do
@myxp.deploy
end
desc 'Status'
task :status do
@myxp.status
end
desc 'Remove all running jobs'
task :clean do
logger.debug "Clean all Grid'5000 running jobs..."
@myxp.clean
end
desc 'Run date command'
task :date, :roles => [:job1, :job2] do
set :user, 'root'
run 'date'
end
xp.conf sample file
site 'rennes'
public_key '/Users/pmorillon/.ssh/id_rsa_g5k.pub'