2016-03-15 3 views
0

У меня есть Vagrantfile с установочным скриптом, как показано ниже. Я запускал его несколько раз с vagrant up, и я знаю, что первые несколько команд работают, но более поздние из них я не знаю.отладка сценария bash установки бродяг

Vagrantfile:

# -*- mode: ruby -*- 
VAGRANTFILE_API_VERSION = "2" 

$setup = <<END 
    # some bash code 
    # ... 

    # something that somehow never runs 
    sudo chown -R vagrant:vagrant /some/path 
END 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "puppetlabs/centos-7.0-64-nocm" 

    config.vm.define "client", primary: true do |client| 
    client.vm.hostname = "client.example.com" 
    client.vm.network :private_network, ip: "192.168.250.10" 
    client.vm.provision "shell", inline: $setup 
    end 
end 

Есть ли способ, чтобы увидеть, что ошибки случаются, когда скрипты запускаются на vagrant up?

Я пробовал vagrant up --debug &> vagrant.log, но выход был буквально тысячами строк, и я не мог найти ничего полезного (или не знал, что искать, что более вероятно).

ответ

2

echo должен делать трюк и отображать сообщения из вашего файла оболочки.

echo "running update ..." 
sudo apt-get update 

echo "running install lib ..." 
sudo apt-get install --yes git-all libreadline-dev build-essential curl git m4 python-setuptools ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev 

echo "install rvm ..." 
curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0 

все эхо-сообщения будут отображаться на выходе при запуске оболочки инициализации

Если вам нужно перенаправить поток ошибок на стандартный вывод вы можете сделать что-то вроде grep * 2>&1 - исх: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

1

В то время как Фредерик Ответ Анри определенно рекомендуется и полезен, бродяга также поставляется с встроенной отладочной помощью, которую вы можете read more about here, но в основном вы можете vagrant up с флагом отладки для получения дополнительной информации:

vagrant up --debug 
+0

Я упомянул, что в моем вопросе уже. – lollercoaster

+0

@lollercoaster Достаточно честный. Вы можете попробовать посмотреть гость для журналов (dmesg, syslog,/var/log/* и т. Д.). Это, в сочетании с эхом в ответе Фредерика Анри, должно помочь вам сузить то, что не удается во время предоставления. Вы также можете попробовать grepping vagrant.log для «error» - 'cat vagrant.log | grep -i error', чтобы узнать, помогает ли это сузить его. –

Смежные вопросы