如何在Ruby中使用Fog创建Google计算引擎实例
我尝试使用以下代码,但出现错误如何在Ruby中使用Fog创建Google计算引擎实例,ruby,google-compute-engine,fog,Ruby,Google Compute Engine,Fog,我尝试使用以下代码,但出现错误 server = connection.servers.create({ :name => "instance-#{Time.now}", :image_name => "debian-7-wheezy-v20150325", :machine_type => "f1-micro", :zone_name => "us-central1-a", }) /home/vijay/.rvm/gems
server = connection.servers.create({
:name => "instance-#{Time.now}",
:image_name => "debian-7-wheezy-v20150325",
:machine_type => "f1-micro",
:zone_name => "us-central1-a",
})
/home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-core-1.30.0/lib/fog/core/attributes.rb:151:in `requires': disks is required for this operation (ArgumentError)
from /home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-1.29.0/lib/fog/google/models/compute/server.rb:218:in `save'
from /home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-core-1.30.0/lib/fog/core/collection.rb:51:in `create'
from google_compute_engine.rb:11:in `<main>'
server=connection.servers.create({
:name=>“实例-#{Time.now}”,
:image_name=>“debian-7-wheezy-v20150325”,
:机器类型=>“f1微型”,
:zone_name=>“us-central1-a”,
})
/home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-core-1.30.0/lib/fog/core/attributes.rb:151:“需要”:此操作需要磁盘(ArgumentError)
from/home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-1.29.0/lib/fog/google/models/compute/server.rb:218:in'save'
from/home/vijay/.rvm/gems/ruby-2.0.0-p598/gems/fog-core-1.30.0/lib/fog/core/collection.rb:51:在“创建”中
来自谷歌计算引擎。rb:11:in`'
我想我缺少了一些必需的参数,有人能帮我解决这个问题吗。首先创建一个磁盘:
disk = connection.disks.create({
:name => "my-disk",
:zone_name => "us-central1-a",
:size_gb => 10,
:source_image => "debian-7-wheezy-v20150325"})
接下来,使用该磁盘创建实例:
server = connection.servers.create({
:name => "my-server",
:machine_type => "f1-micro",
:zone_name => "us-central1-a",
:disks => [disk.get_as_boot_disk]})
注意:您可以在创建实例时连接多个磁盘。首先创建一个磁盘:
disk = connection.disks.create({
:name => "my-disk",
:zone_name => "us-central1-a",
:size_gb => 10,
:source_image => "debian-7-wheezy-v20150325"})
接下来,使用该磁盘创建实例:
server = connection.servers.create({
:name => "my-server",
:machine_type => "f1-micro",
:zone_name => "us-central1-a",
:disks => [disk.get_as_boot_disk]})
注意:您可以在创建实例时连接多个磁盘。从
区域名称
中删除-a
。它应该只有us-central1
否,它仍然不工作相同的错误@shivam此操作需要磁盘(ArgumentError)
似乎您需要传递:磁盘arg?您能给出arg的示例值吗@Mattdarby一切看起来都很好,我认为您应该在最后添加以下参数:server.wait_for{ready?}另一种方法是使用以下等效方法:server=connection.servers.bootstrapdrop-a
fromzone_name
。它应该只有us-central1
否,它仍然不工作相同的错误@shivam此操作需要磁盘(ArgumentError)
似乎您需要传递:磁盘arg?您能给出arg的示例值吗@Mattdarby一切看起来都很好,我相信你应该在最后添加以下参数:server.wait_for{ready?}另一种方法是使用以下等效方法:server=connection.servers.bootstrapthanks很多@Paul it is working。你能推荐任何我可以学习的网站吗?特别是看看Fog repo,非常感谢@Paul it正在工作。你能推荐任何我可以学习的网站吗?看看Fog repo,尤其是