如何在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
from
zone_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,尤其是