2011-01-21 64 views
5

我正在使用Ruby綁定到CloudServers API來啓動一組機器。Rackspace雲服務器API「個性」字段是否有效?

該API包括使用名爲「個性」的字段將文件「注入」新創建機器的文件系統的能力。但是,我無法通過「個性」鍵上傳文件。機器已正確創建,但創建服務器時該文件不存在。

以下是一個演示這是一條測試腳本:

#!/usr/bin/env ruby 
require 'rubygems' 
require 'cloudservers' 

cs = CloudServers::Connection.new(:username=>"user",:api_key=>"key") 

begin 
    server = cs.create_server(:flavorId=>1, 
       :name=>"personality-test", 
       :imageId=>7888402, 
       :personality=>{"/tmp/foo"=>"/tmp/foo" }) 
rescue 
    print "Failed to create server ", $!, "\n" 
end 

任何人都已經能夠使這項工作?

回答

2

我不確定您使用的是哪個庫,但我已通過Fog的Rackspace Cloud後端成功使用過個性。

server = Fog::Compute.new(:provider => 'Rackspace', 
          :rackspace_username => config[:rackspace_api_username], 
          :rackspace_api_key => config[:rackspace_api_key]) 
server.flavor_id = sizes[args[:size]] 
server.image_id = 49 # Ubuntu 10.04 
server.name = args[:fqdn] 

server.personality = [ 
    { 
    'path' => '/etc/install-chef', 
    'contents' => File.read("install-chef.sh") 
    } 
] 
server.save 
相關問題