21

有没有办法让 Vagrant 在运行时显示配置工具的输出,而不仅仅是在最后?如果这很重要,我正在使用 Ansible 插件。

Vagrant 似乎在运行config.vm.provision收集输出的整个部分,只有在一切完成后才显示它。

这会导致一些问题,例如流程中的某个步骤何时挂起或您希望有涉及用户的交互式步骤。

4

3 回答 3

16

您可能希望将 vagrant 日志记录级别更改为调试,以便在提供时查看更多输出 =>VAGRANT_LOG=debug vagrant up --provision

这适用于 Chef Solo(我没有尝试过使用 Ansible 的 Vagrant),配置部分的输出类似于使用 debug ( -l debug) 日志级别运行 chef-solo。

下面添加了更新

对于 Ansible 供应商,自 vagrant 1.3.2 以来添加了以下内容:

  • provisioners/ansible:支持更详细的级别,更好的文档。[GH-2153]。

有关详细信息,请参阅 pull request 2153,看起来官方文档尚未更新。

我认为您应该能够添加ansible.verbosityVagrantfile 以启用最大详细级别

Vagrant.configure("2") do |config|
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "provisioning/playbook.yml"
    ansible.verbose = "true"
    ansible.verbosity = "-vvv"
  end
end
于 2013-09-23T01:10:04.300 回答
3

我找到了这个:

export PYTHONUNBUFFERED=1

在这里: https ://groups.google.com/forum/#!topic/ansible-project/aXutTmXAbR0

并在此处添加: https ://github.com/mitchellh/vagrant/issues/2194

于 2013-09-26T06:18:56.847 回答
1

我使用了 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
于 2015-11-27T09:26:28.273 回答