2014-09-30 3 views
2

저는 Ruby (PHP, Symfony2 및 AngularJS에서 제공)에 대해 매우 익숙하며, Vagrantfiles를 올바르게 작성하는 데있어 비교적 새로운 기능을 제공합니다. 나는 DRY 원칙을 고수하면서 여러 컴퓨터 환경을 만들려고 노력하고 있습니다.Vagrant 상자에서 해시 루프를 시도하는 중 오류가 발생했습니다.

내가 Vagrantfiles가 Ruby 구문을 이해한다고 읽었을 때 Ruby가 연관 배열을 정의하는 방법을 찾았습니다. 이것은 일이 매우 쉬웠습니다. 분명히 아닙니다.

내 Vagrantfile는 다음과 같이

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 
VAGRANTFILE_API_VERSION = "2" 

#hash for boxes: 'box_name' => 'last_ip_octet' 
boxes = { 
     'frontend' => '10', 
     'qp' => '11' 
} 


Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

config.vm.box = "chef/ubuntu-14.04" 

#All machines, see the hash defined in top of the Vagrantfile for all the boxes 
    boxes.each do |key, value| 
    config.vm.define "#{key}.qp" do |#{key}_qp| 
     #{key}_qp.vm.network "private_network", ip: "192.168.51.#{value}" 
     #{key}_qp.vm.provision "shell", path: "../provisioning/agentinstall.sh" 
     #{key}_qp.vm.synced_folder "./share/#{key}.qp", "/var/www/html" 
    end 
    end 
end           

내 문제는 읽

There is a syntax error in the following Vagrantfile. The syntax error 
message is reproduced below for convenience: 

/Users/Zowie/Documents/vagrant/project/temp/Vagrantfile:30: syntax error,   unexpected keyword_end, expecting '|' 
end  
^  

불행하게도, 내가 해시 또는 Vagrantfiles 유사한 것을 사용에 대한 모든 정보를 찾을 수 없습니다. 반복을 많이하는 매우 긴 Vagrantfile을 작성하는 동안 기분이 좋지 않기 때문에 당신이 나를 도울 수 있기를 바랍니다. ...

미리 감사드립니다!

+0

Jeeeeeeez, 난 지금 '#'이 파일에 줄을 주석으로 알 수 있습니다. 나는 30 분 후에 그것을 점검 할 것이다! 읽는다면 조금 기다려주세요. 감사! – ZvL

+1

맞아요. 'config.vm.define' 라인의 해시가 문제를 일으 킵니다. –

+0

해결되었습니다! 그것을 확인해 주셔서 감사합니다. 같은 문제가있는 사람을 돕기 위해 자신의 질문에 답하십시오. – ZvL

답변

2

Stackoverflow 웹 사이트에서 저에게 제 질문에 답변했습니다! Stackoverflow의 코드 블록 기능 덕분에, 나는 '#'을 사용했기 때문에 내 컴퓨터 특정 구성이 주석 처리 된 것으로 나타났습니다.

나는 (읽어도 쉽게하는) 내 루프에서 다음 구문을 사용하여 고정 :

boxes.each do |key, value| 
    config.vm.define "#{key}.qp" do |node| 
     node.vm.network "private_network", ip: "192.168.51.#{value}" 
     node.vm.provision "shell", path: "../provisioning/agentinstall.sh" 
     node.vm.synced_folder "./share/#{key}.qp", "/var/www/html" 
    end 
    end 
관련 문제