Прямые выходные данные Vagrant

Есть ли способ заставить Vagrant отображать вывод инструмента подготовки во время его работы, а не только в конце? Я использую плагин Ansible, если это имеет значение.

Кажется, что Vagrant запускает весь раздел config.vm.provision, собирая выходные данные, и отображает их только после того, как все будет завершено.

Это вызывает проблемы, например, когда шаг в процессе зависает или когда вы хотите иметь интерактивные шаги, в которых участвует пользователь.


person Damian Moore    schedule 22.09.2013    source источник


Ответы (3)


Возможно, вы захотите изменить уровень ведения журнала vagrant на отладку, чтобы увидеть больше вывода, когда он выполняет условие => VAGRANT_LOG=debug vagrant up --provision

Это работает для Chef Solo (я не пробовал Vagrant с Ansible), вывод для части подготовки аналогичен запуску chef-solo с уровнем журнала отладки (-l debug).

Обновление добавлено ниже

Для поставщика Ansible с vagrant 1.3.2 было добавлено следующее:

  • provisioners/ansible: поддержка большего количества уровней детализации, улучшенная документация. [GH-2153].

Подробности см. в запросе на вытягивание 2153, похоже, официальный документ еще НЕ обновлялся.

Я думаю, вы должны иметь возможность добавить ansible.verbosity в Vagrantfile, чтобы включить максимальный уровень детализации.

Vagrant.configure("2") do |config|
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/playbook.yml"
    ansible.verbose = "true"
    ansible.verbosity = "-vvv"
  end
end
person Terry Wang    schedule 23.09.2013
comment
Спасибо за совет, но это не помогает. Теперь я попробовал настройку chef_solo и вижу, что она показывает вывод в реальном времени на каждом этапе подготовки. Я думаю, что проблема, с которой я сталкиваюсь, заключается в ограничении только поставщика Ansible от Vagrant (вероятно, потому, что он новее и менее зрелый) - person Damian Moore; 23.09.2013
comment
подробность больше не поддерживается 1.5.0-dev - person jdewit; 25.02.2014

Я нашел это:

export PYTHONUNBUFFERED=1

здесь: https://groups.google.com/forum/#!topic/ansible-project/aXutTmXAbR0

и добавил сюда: https://github.com/mitchellh/vagrant/issues/2194

person ak5    schedule 26.09.2013

Я использовал Vagrant 1.7.4, и ansible.verbosity больше не доступен (начиная с 1.5). Это правильный способ:

Vagrant.configure("2") do |config|
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/playbook.yml"
    ansible.verbose = "vvv"
  end
end
person Luc Charpentier    schedule 27.11.2015