2011-01-21 57 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