2013-04-28 18 views
9

Ho cercato di utilizzare vagrant per configurare una macchina virtuale Ubuntu su Windows per lo sviluppo di Rails.Il provisioning della shell di Vagrant non funziona

Quello che ho fatto è stato prima creare un "normale" vm e SSHed e poi ho eseguito tutti i comandi di cui ho bisogno come sudo apt-get install x per assicurarsi che funzionassero (cosa che hanno fatto), prima di mettere loro in uno script di shell.

Quando provo a eseguire vagrant usando lo script della shell che ho fatto cade sopra con un messaggio di errore estremamente lungo con cose come stdin: non è un tty e altri messaggi di errore altrettanto criptici.

Il mio file vagabondo si presenta così:

Vagrant.configure("2") do |config| 

    config.vm.box = "precise32" 
    config.vm.provision :shell, :path => "Vagrant.sh" 
    config.vm.network :forwarded_port, host: 3003, guest: 3000, auto_correct: true 

end 

mio script di shell è qui (perché è un po 'lungo e GitHub fornire evidenziazione della sintassi): https://gist.github.com/leebrooks0/5477591

e l'uscita della console è qui: https://gist.github.com/leebrooks0/5477627

Qualsiasi aiuto sarà molto apprezzato.


Dopo più cercando ho capito che neanche lo script demo dalla documentazione vaganti (http://docs.vagrantup.com/v2/getting-started/provisioning.html) funziona, che è abbastanza strano, perché lo script sicuramente funzionato ieri quando ho iniziato questo lavoro e ho cercato fuori.

risposta

6
/tmp/vagrant-shell: line 5: $'\r': command not found 

linea 5

echo 'Updating system packages...' 

sembra possibile problema con le finestre "ritorno a capo/linea di alimentazione" \r\n vs unix "nuova linea" \n

Puoi anche utilizzare l'opzione cuoco-solo in vagabondo file, richiede un po 'di tempo per abituarsi allo chef, ma probabilmente ne vale la pena - http://docs.vagrantup.com/v2/provisioning/chef_solo.html

+0

Anche io l'ho notato, ma l'ho respinto (forse scioccamente) perché lo script di shell di esempio dei documenti ha funzionato ieri. Ho esaminato il burattino e lo chef, ma ho pensato a un nuovo trucco alla volta :) Perché raccomandi lo chef più del burattino? – Lee

+0

Ho usato questo suggerimento per convertire le mie terminazioni di linea in terminazioni di riga unix.http: //superuser.com/questions/479756/eol-in-notepad-and-notepad. – Lee

+0

non penso che tu possa sbagliare a imparare uno, lo chef sembrava più facile da imparare per me, chef-solista e coltello lo rendono facile senza bisogno di un server di provisioning - alcuni buoni post di blog là fuori facendo confronti: https: // www.google.com/search?q=chef+or+puppet – house9

Problemi correlati