Мой экземпляр 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