mitchellh/vagrant-aws

Basic example with AWS provider not working

chivakaa opened this issue · 1 comments

Plugin 'vagrant-aws' is not working as expected in my system. Not clear for me from what depends the error.

Vagrant version, 'dummy' box present, plugin ready (latest version)

$ vagrant --version
Vagrant 2.2.9

$ vagrant box list | grep dummy
dummy                         (aws, 0)

$ vagrant plugin list | grep vagrant-aws
vagrant-aws (0.7.2, global)

Contents of basic Vagrantfile for AWS provider

# Require the AWS provider plugin
require 'vagrant-aws'

# Create and configure the AWS instance(s)
Vagrant.configure('2') do |config|

  # Use dummy AWS box
  config.vm.box = 'dummy'

  # Specify AWS provider configuration
  config.vm.provider 'aws' do |aws, override|

    aws.access_key_id = ENV['AWS_ACCESS_KEY']
    aws.secret_access_key = ENV['AWS_SECRET_KEY']
    aws.keypair_name = 'orange-test'

    aws.ami = "ami-7747d01e"

    override.ssh.username = 'ubuntu'
    override.ssh.private_key_path = ENV['AWS_PRIVATE_KEY']
  end
end

Running as documentation, shows following errors:

$ vagrant up --provider=aws
Traceback (most recent call last):
	25: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/bin/vagrant:205:in `<main>'
	24: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/environment.rb:290:in `cli'
	23: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/cli.rb:67:in `execute'
	22: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/plugins/commands/up/command.rb:87:in `execute'
	21: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/plugin/v2/command.rb:186:in `with_target_vms'
	20: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/plugin/v2/command.rb:186:in `each'
	19: from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/plugin/v2/command.rb:204:in `block in with_target_vms'
..
..

Running with debug level, shows following error:

$ vagrant up --provider=aws --debug &> vagrant.log
..
..
INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x0000000002898620>
 INFO connect_aws: Connecting to AWS...
**ERROR warden: Error occurred: undefined method `except' for #<Hash:0x00000000028fc990>**
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO environment: Running hook: environment_unload
 INFO runner: Running action: environment_unload #<Vagrant::Action::Builder:0x0000000002490780>
/home/dan/.vagrant.d/gems/2.6.6/gems/vagrant-aws-0.7.2/lib/vagrant-aws/action/connect_aws.rb:41:in `call': undefined method `except' for #<Hash:0x00000000028fc990> (NoMethodError)
        from /opt/vagrant/embedded/gems/2.2.9/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'

My AWS account credentials works fine, no problems found regarding this. Also variable environments used in Vagrantfile are present.

$ env | grep -i AWS
AWS_ACCESS_KEY=**TV
AWS_SECRET_KEY=**sd
AWS_PROFILE=default
AWS_DEFAULT_REGION=us-west-2
AWS_PRIVATE_KEY=***.pem

Some ideas? Plugin reinstalled and Ruby updated but... the same error. Some guidelines? Not problem if is required install / uninstall whatever.

Thanks in advance for your help :-D

Duplicate #566