首页 > 解决方案 > Vagrantfile:语法错误,意外的输入结束,期待keyword_end

问题描述

我正在使用 Vargrantfile 在 vi​​rtualbox 上设置一个新的 Ansible 控制器和节点。我继续收到错误:

以下 Vagrantfile 中存在语法错误。为方便起见,将语法错误消息复制如下:

/home/vagrant/ansible/Vagrantfile:19:语法错误,意外的输入结束,> 期待关键字_end

我一遍又一遍地更改“end”关键字的位置,但在不同的行上仍然出现相同的错误。我确定这很简单,我只是想念它,这是其中一个星期……

Vagrant.configure("2") do |config|
        config.vm.define "controller" do |controller|
                controller.vm.box = "bento/ubuntu 16.04"
                controller.vm.hostname = "controller"
                controller.vm.network :private_network, ip: "10.10.10.10"
                controller.vm.provider "virtualbox" do |vb|
                        vb.memory = "256"
                end
        end

    (1..3).each do |i|
        config.vm.define "node#{i}" do |node|
                node.vm.box = "bento/ubuntu-16.04"
                node.vm.hostname = "node#{i}"
                node.vm.network :private_network, ip: "10.10.10.1#{i}"
                node.vm.provider "virtualbox" do |vb|
                            vb.memory = "256"
                end
        end

我应该能够在终端中运行vagrant,并在 virtualbox 中获得配置控制器/节点的输出。我错过了什么?

标签: ansiblevagrantvagrantfile

解决方案


您在文件末尾缺少 2 个“结束”

Vagrant.configure("2") do |config|
  config.vm.define "controller" do |controller|
    controller.vm.box = "bento/ubuntu 16.04"
    controller.vm.hostname = "controller"
    controller.vm.network :private_network, ip: "10.10.10.10"
    controller.vm.provider "virtualbox" do |vb|
      vb.memory = "256"
    end
  end

  (1..3).each do |i|
    config.vm.define "node#{i}" do |node|
      node.vm.box = "bento/ubuntu-16.04"
      node.vm.hostname = "node#{i}"
      node.vm.network :private_network, ip: "10.10.10.1#{i}"
      node.vm.provider "virtualbox" do |vb|
        vb.memory = "256"
      end
    end
  end
end

推荐阅读