Ruby Rackspace云服务器API是否;“个性”;实地工作

Ruby Rackspace云服务器API是否;“个性”;实地工作,ruby,rackspace-cloud,Ruby,Rackspace Cloud,我正在使用与CloudServers API的Ruby绑定来加速机器集群 API包括使用名为“personality”的字段将文件“注入”到新创建的机器的文件系统中的功能。但是,我无法通过“个性”键上传文件。已正确创建计算机,但创建服务器时文件不存在 下面是一个测试脚本,演示了这一点: #!/usr/bin/env ruby require 'rubygems' require 'cloudservers' cs = CloudServers::Connection.new(:user

我正在使用与CloudServers API的Ruby绑定来加速机器集群

API包括使用名为“personality”的字段将文件“注入”到新创建的机器的文件系统中的功能。但是,我无法通过“个性”键上传文件。已正确创建计算机,但创建服务器时文件不存在

下面是一个测试脚本,演示了这一点:

 #!/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

有人能做到这一点吗?

我不确定您使用的是哪个库,但我已经通过Fog的Rackspace Cloud后端成功地使用了personalities

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