Назад | Перейти на главную страницу

Почему этот экземпляр AWS, предоставленный Vagrant, прекращает работу, как только он появляется?

Мой экземпляр AWS, предоставленный Vagrant, будет отключен, как только он появится.

Вот мой файл конфигурации:

  config.vm.box = "aws-dummy"
  config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"

  config.vm.synced_folder "./", "/vagrant", type: "rsync"


  config.vm.provider :aws do |aws, override|
    aws.access_key_id = "MY ID"
    aws.secret_access_key = "MY SECRET KEY GOES HERE"
    aws.keypair_name = "cb"
    aws.ami = "ami-f77fbeb3"
    aws.instance_ready_timeout = 300
    aws.instance_type = "t2.small"
    aws.tags = {
        "Name" => "VagrantUniversal",
    }

    aws.associate_public_ip = true
    aws.availability_zone = "us-west-1a"
    aws.subnet_id = "subnet-f2245XXX"

    aws.private_ip_address = "10.1.10.10"
    aws.security_groups = [ 'sg-4084dXXX' ] # 
    aws.region = "us-west-1"
    # aws.block_device_mapping = [{ 'DeviceName' => '/dev/sda1', 'Ebs.VolumeSize' => 50 }]

    override.ssh.username = "centos"
    override.ssh.private_key_path = "../keys/cb.pem"
  end

Я вынул часть обеспечения, чтобы исключить такую ​​возможность. Я также пробовал закомментировать synced_folder

Из журнала:

 INFO interface: info: Machine is booted and ready for use!
 INFO interface: info: ==> default: Machine is booted and ready for use!
==> default: Machine is booted and ready for use!
 INFO warden: Calling IN action: #<Proc:0x00000100a3d5f8@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::Call:0x000001028a1058>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x00000100a4e290>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Extras::Action::DNS::ProviderIsAWS:0x00000100a57368>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Extras::Action::DNS::ProviderIsAWS:0x00000100a57368>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Warden:0x00000100a859e8>
 INFO warden: Calling IN action: #<Proc:0x000001023ca7f0@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x00000100a85970>
 INFO connect_aws: Connecting to AWS...
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ReadSSHInfo:0x00000102968220>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Extras::Action::DNS::ConnectAWS:0x000001029a1160>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Extras::Action::DNS::Set:0x000001029da5f0>
ERROR warden: Error occurred: undefined method `records' for nil:NilClass
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
ERROR warden: Error occurred: undefined method `records' for nil:NilClass
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
ERROR warden: Error occurred: undefined method `records' for nil:NilClass
 INFO warden: Beginning recovery process...
 INFO warden: Calling recover: #<Vagrant::Action::Builtin::Call:0x000001028a1058>
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Calling recover: #<Vagrant::Action::Builtin::Call:0x000001028a10a8>
 INFO warden: Beginning recovery process...
 INFO warden: Calling recover: #<VagrantPlugins::AWS::Action::RunInstance:0x00000100a17650>
 INFO machine: Calling action: read_state on provider AWS (i-41bcaa81)
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 2 hooks defined.
 INFO runner: Running action: machine_action_read_state #<Vagrant::Action::Builder:0x00000104342c90>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ConfigValidate:0x000001043480a0>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x00000104348028>
 INFO connect_aws: Connecting to AWS...
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ReadState:0x000001043a9f30>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ReadState:0x000001043a9f30>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x00000104348028>
 INFO warden: Calling OUT action: #<Vagrant::Action::Builtin::ConfigValidate:0x000001043480a0>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x000001009a6068>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::Call:0x000001009b4e60>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x00000100a1f0a8>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::DestroyConfirm:0x00000100a1c290>
 INFO warden: Calling OUT action: #<Vagrant::Action::Builtin::DestroyConfirm:0x00000100a1c290>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Warden:0x00000100a54dc0>
 INFO warden: Calling IN action: #<Proc:0x00000100a96d88@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ConfigValidate:0x00000100a54d48>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::Call:0x00000100a54d20>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x000001029bb920>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::IsCreated:0x000001029b8180>
 INFO machine: Calling action: read_state on provider AWS (i-41bcaa81)
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 2 hooks defined.
 INFO runner: Running action: machine_action_read_state #<Vagrant::Action::Builder:0x00000101036a40>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ConfigValidate:0x0000010283bd20>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x0000010283baf0>
 INFO connect_aws: Connecting to AWS...
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ReadState:0x000001022c69f8>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ReadState:0x000001022c69f8>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x0000010283baf0>
 INFO warden: Calling OUT action: #<Vagrant::Action::Builtin::ConfigValidate:0x0000010283bd20>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::IsCreated:0x000001029b8180>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 3 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Warden:0x000001040a93a8>
 INFO warden: Calling IN action: #<Proc:0x0000010432b7c0@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x000001040a9218>
 INFO connect_aws: Connecting to AWS...
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ElbDeregisterInstance:0x00000104179990>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::TerminateInstance:0x000001028962e8>
 INFO interface: info: Terminating the instance...
 INFO interface: info: ==> default: Terminating the instance...
==> default: Terminating the instance...
 INFO machine: New machine ID: nil
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ProvisionerCleanup:0x000001042392b8>
 INFO warden: Calling IN action: #<Proc:0x000001042c1258@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>

... и вот суть журнала без отладочной информации:

==> default: Launching an instance with the following settings...
==> default:  -- Type: t2.small
==> default:  -- AMI: ami-f77fbeb3
==> default:  -- Region: us-west-1
==> default:  -- Availability Zone: us-west-1a
==> default:  -- Keypair: cb
==> default:  -- Subnet ID: subnet-f2245XXX
==> default:  -- Private IP: 10.1.10.10
==> default:  -- Security Groups: ["sg-4084dXXX"]
==> default:  -- Block Device Mapping: []
==> default:  -- Terminate On Shutdown: false
==> default:  -- Monitoring: false
==> default:  -- EBS optimized: false
==> default:  -- Assigning a public IP address in a VPC: true
==> default: Waiting for instance to become "ready"...
==> default: Waiting for SSH to become available...
==> default: Machine is booted and ready for use!
==> default: Terminating the instance...
/Users/swirsky/.vagrant.d/gems/gems/vagrant-aws-extras-0.1.0/lib/vagrant-aws-extras/action/dns.rb:61:in `call': undefined method `records' 
for nil:NilClass (NoMethodError)

Я использую Vagrant v1.7.4, vagrant-aws (0.6.0), vagrant-aws-extras (0.1.0), ruby ​​2.0.0p481

Если я удалю vagrant-aws-extras плагин, я получаю любопытное сообщение:

mkdir -p '/ бродяга'

Стандартный вывод из команды:

Stderr из команды:

sudo: извините, у вас должен быть tty для запуска sudo

Следующая команда SSH ответила ненулевым статусом выхода. Бродяга предполагает, что это означает, что команда не выполнена! mkdir -p '/ бродяга'

Стандартный вывод из команды:

Stderr из команды: sudo: извините, у вас должен быть tty для запуска sudo

Это потенциально может быть ошибкой vagrant-aws-extras плагин, так как другие люди также сообщили об этой проблеме, см. GH vagrant-aws # 442. Или, возможно, это неправильная конфигурация вашего окна изображения.

Поскольку неясно, какую команду вы вызываете, но если вы вызываете vagrant reload, он завершает работу вашего экземпляра по дизайну, так как он просто запускает halt за которым следует up, так это нормально. Однако проблема в том, что он не работает должным образом из-за следующей ошибки:

sudo: извините, у вас должен быть tty для запуска sudo

У меня была аналогичная проблема с reload о котором сообщалось на Бродяга GH # 7244.

Таким образом, обходным путем является уничтожение машины и ее повторная подготовка. Или, если вы хотите снова запустить подготовку к работающему экземпляру, просто запустите vagrant provision чтобы не вызывать команду выключения.

Также возможно, что проблема вызвана не самой командой выключения, а указанной выше ошибкой, возникающей в результате выполнения mkdir -p '/vagrant'.

Лучше всего использовать образ, не требующий tty, с sudo. В противном случае настройте свой образ так, чтобы пароль не требовался, поскольку Vagrant по умолчанию предполагает, что sudo команда не требует ввода пароля.

Также комментируя Defaults requiretty из /etc/sudoers может помочь. Или используйте config.ssh.pty = true возможность получить tty.

Видеть: GH # 1482 для бродяги - Невозможно выполнить команды sudo на машине, требующей tty для запуска sudo