Joh*_*fer 5 ruby rackspace-cloud
我正在使用Ruby绑定到CloudServers 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
Run Code Online (Sandbox Code Playgroud)
有没有人能够做到这一点?
我不确定您正在使用哪个库,但我已经通过 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
Run Code Online (Sandbox Code Playgroud)