diff options
Diffstat (limited to 'lib/leap_cli/commands/deploy.rb')
-rw-r--r-- | lib/leap_cli/commands/deploy.rb | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/leap_cli/commands/deploy.rb b/lib/leap_cli/commands/deploy.rb index 9ec984c..c5efed5 100644 --- a/lib/leap_cli/commands/deploy.rb +++ b/lib/leap_cli/commands/deploy.rb @@ -6,12 +6,21 @@ module LeapCli arg_name '<node filter>' command :deploy do |c| c.action do |global_options,options,args| - nodes = manager.filter(args) - say "Deploying to these nodes: #{nodes.keys.join(', ')}" - if agree "Continue? " - say "deploy not yet implemented" - else - say "OK. Bye." + nodes = manager.filter!(args) + if nodes.size > 1 + say "Deploying to these nodes: #{nodes.keys.join(', ')}" + unless agree "Continue? " + quit! "OK. Bye." + end + end + leap_root = '/root/leap' + ssh_connect(nodes) do |ssh| + ssh.leap.mkdir_leap leap_root + ssh.leap.rsync_update do |server| + node = manager.node(server.host) + {:source => Path.named_path([:hiera, node.name]), :dest => "#{leap_root}/config/#{node.name}.yaml"} + end + ssh.apply_puppet end end end |