mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 02:18:41 -05:00
Allow authorized_keys to be overridden on VM checkout
This commit is contained in:
parent
1b8435a63a
commit
50a12d672e
4 changed files with 24 additions and 0 deletions
|
|
@ -3,10 +3,12 @@ require 'rubygems' unless defined?(Gem)
|
|||
module Vmpooler
|
||||
require 'date'
|
||||
require 'json'
|
||||
require 'net/scp'
|
||||
require 'open-uri'
|
||||
require 'rbvmomi'
|
||||
require 'redis'
|
||||
require 'sinatra/base'
|
||||
require 'stringio'
|
||||
require 'time'
|
||||
require 'timeout'
|
||||
require 'yaml'
|
||||
|
|
|
|||
|
|
@ -321,6 +321,10 @@ module Vmpooler
|
|||
jdata = JSON.parse(request.body.read)
|
||||
|
||||
jdata.each do |key, val|
|
||||
if key == 'key'
|
||||
result['key'] = val
|
||||
end
|
||||
|
||||
if $redis.scard('vmpooler__ready__' + key) < val.to_i
|
||||
available = 0
|
||||
end
|
||||
|
|
@ -330,6 +334,10 @@ module Vmpooler
|
|||
result['ok'] = true
|
||||
|
||||
jdata.each do |key, val|
|
||||
if key == 'key'
|
||||
next
|
||||
end
|
||||
|
||||
result[key] ||= {}
|
||||
|
||||
result[key]['ok'] = true ##
|
||||
|
|
@ -345,6 +353,13 @@ module Vmpooler
|
|||
|
||||
result[key]['ok'] = true ##
|
||||
|
||||
if ( result['key'] and $config[:config]['ssh_key'] )
|
||||
Net::SCP.upload!(
|
||||
vm, 'root', StringIO.new(result['key']), '/root/.ssh/authorized_keys',
|
||||
:ssh => { :keys => [ $config[:config]['ssh_key'] ] }
|
||||
)
|
||||
end
|
||||
|
||||
if result[key]['hostname']
|
||||
result[key]['hostname'] = [result[key]['hostname']] unless result[key]['hostname'].is_a?(Array)
|
||||
result[key]['hostname'].push(vm)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue