2011-01-21 11 views
5

CloudServers APIへのRubyバインディングを使用して、マシンのクラスタをスピンアップしています。Rackspace Cloud Servers 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 
関連する問題