5

CloudServers API への Ruby バインディングを使用して、マシンのクラスターを起動しています。

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

誰もこれを機能させることができましたか?

4

1 に答える 1

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
于 2011-05-04T11:40:00.217 に答える