Бродячая синтаксическая ошибка - PullRequest
0 голосов
/ 29 августа 2018

У меня есть этот блок кода здесь:

Vagrant.configure("2") do |config| 
    config.vm.define “web” do |web| 
        web.vm.box = "ubuntu/trusty64"                          web.vm.network :forwarded_port, guest: 80, host: 8080           web.vm.provision :puppet do |puppet|                            puppet.manifests_path = "manifests"                         puppet.manifest_file = "site.pp" 
        end 
    end 
    config.vm.define “db” do |db|  
        db.vm.box = "ubuntu/trusty64" 
        db.vm.network :forwarded_port, guest: 80, host: 8081            db.vm.provision :puppet do |puppet| 
            puppet.manifests_path = "manifests"                         puppet.manifest_file = "myweb.pp"  
            #remember you can use shell instead of puppet! 
        end 
    end 
end 

Когда я пытаюсь сделать vagrant up, я получаю ошибки:

1. Vagrantfile:2: invalid multibyte char (UTF-8)
2. Vagrantfile:2: syntax error, unexpected end-of-input, expecting keyword_end config.vm.define �web� do |web|

Я почти уверен, что мой код правильный, но почему он жалуется?

1 Ответ

0 голосов
/ 29 августа 2018

У вас есть умные кавычки (фигурные кавычки) вместо обычных кавычек около web и db. Эти кавычки являются символами UTF-8, в отличие от обычного ASCII (и, очевидно, даже используют несколько байтов на символ).

Используйте это:

Vagrant.configure("2") do |config| 
    config.vm.define "web" do |web| 
        web.vm.box = "ubuntu/trusty64"
        web.vm.network :forwarded_port, guest: 80, host: 8080
        web.vm.provision :puppet do |puppet|
            puppet.manifests_path = "manifests"
            puppet.manifest_file = "site.pp" 
        end 
    end

    config.vm.define "db" do |db|  
        db.vm.box = "ubuntu/trusty64" 
        db.vm.network :forwarded_port, guest: 80, host: 8081
        db.vm.provision :puppet do |puppet| 
            puppet.manifests_path = "manifests"
            puppet.manifest_file = "myweb.pp"  
            #remember you can use shell instead of puppet! 
        end 
    end 
end

Кстати, как вы редактируете файлы? Для редакторов кода не принято использовать умные кавычки. Но если вы используете обычный текстовый редактор (например, TextEdit на Mac), он, вероятно, автоматически исправит ваши кавычки в них.

...