0

我打算使用VagrantChef-solo建立AWS环境。但是我遇到了一些我无法解决的错误。有人可以帮助我吗?

我使用的步骤:

  1. 在 Mac OS X 上安装所有必要的环境:如 vagrant、vagrant 插件、虚拟盒子、厨师、厨师插件等。

  2. 下载 vagrant 配置文件:

    git clone https://github.com/ICTatRTI/ict-chef-repo
    
  3. Vagrantfile

    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    Vagrant.configure("2") do |config|
      # All Vagrant configuration is done here. The most common configuration
      # options are documented and commented below. For a complete reference,
      # please see the online documentation at vagrantup.com.
      #config.vm.box_url = "https://opscode-vm.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_chef-11.2.0.box"
      #config.vm.box = "opscode-ubuntu-1204"
      config.vm.box = "dummy"
      config.vm.network :forwarded_port, guest: 80, host: 8888
      config.vm.network :forwarded_port, guest: 3306, host: 3333
      config.ssh.username = "ubuntu"
    
      config.vm.provider :aws do |aws, override|
      #config.vm.provider :aws do |aws|
        aws.access_key_id     = 'XXXXXXXXXXXXXXXQ'
        aws.secret_access_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
        aws.keypair_name = "usr-aws-2013"
        aws.availability_zone = "us-west-2c"
        aws.instance_type = "t1.micro"
        aws.region = "us-west-2"
        aws.ami = "ami-0849a03f"
        aws.security_groups = ['quicklaunch-1']
        aws.tags = { 
          'Name' => 'tong',
          'Description' => 'vagrant test'
        } 
        override.ssh.private_key_path = "~/.ssh/usr-aws-2013.pem"
        override.ssh.username = "ubuntu"
      end
      config.vm.provision :chef_solo do |chef|
    
         chef.node_name = 'base' 
         chef.cookbooks_path = "./cookbooks"
         chef.roles_path = "./roles"
         chef.add_role "base"
         chef.add_role "ushahidi"
       end
    
    end
    
  4. 跑:

    vagrant up --provider=aws
    
  5. 收到以下错误

    Bringing machine 'default' up with 'aws' provider...
    WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.1
    [default] Warning! The AWS provider doesn't support any of the Vagrant
    high-level network configurations (`config.vm.network`). They
    will be silently ignored.
    [default] Launching an instance with the following settings...
    [default]  -- Type: t1.micro
    [default]  -- AMI: ami-0849a03f
    [default]  -- Region: us-west-2
    [default]  -- Availability Zone: us-west-2c
    [default]  -- Keypair: usr-aws-2013
    [default]  -- Security Groups: ["quicklaunch-1"]
    [default]  -- Block Device Mapping: []
    [default]  -- Terminate On Shutdown: false
    An error occurred while executing multiple actions in parallel.
    Any errors that occurred are shown below.
    
    An unexpected error ocurred when executing the action on the
    'default' machine. Please report this as a bug:
     The image id '[ami-0849a03f]' does not exist
    
4

1 回答 1

1

InstanceAMI不同的东西,它们也有不同的数字。因此,如果您有i-bddcf889,则不能在 Vagrantfile 中将其引用为ami-bddcf889

相反,您不必手动创建/启动实例 - 您必须提供 ami,Vagrant 将从该 ami 中创建实例本身。例如,以您手动创建的实例为例。

于 2013-11-28T16:01:12.750 回答