在进行vagrant up provider = rackspace时脚本完全完成之前没有输出

时间:2015-01-05 03:54:20

标签: vagrant openstack rackspace

我正在使用vagrant来启动rackspace / open堆栈中的一些服务器。我正在使用vagrant rackspace插件(https://github.com/mitchellh/vagrant-rackspace)。

我的配置脚本执行并且运行正常 - 但有一个不便之处:我从脚本看到任何输出直到最后。不知何故,所有脚本输出似乎都被缓冲了,我确实看到了......但是直到脚本完全终止。

我有一个解决方法,即发布'我运行的所有脚本的输出我可以查看(在配置期间)如果我使用rackspace控制台登录...但是如果输出在生成时立即滚动,而不是最后缓冲并抛弃。

[注意 - 我也向开发者提交了一个错误,如果我在那里得到答案,我会更新这个帖子。 note2:我试过这个:keep_color =>是的,没有那个参数..相同的结果:直到结束都没有输出。)

要重现,请使用您的rackspace凭据,而不是下面的虚拟凭据。然后跑 vagrant up provider = rackspace 。您将看到所有输出立即显示(而不是看到消息"休眠40秒",然后是延迟,然后是另一条消息。)

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

             config.vm.box = "dummy"
             config.ssh.pty = true          # work around issue where sudo requires tty


            config.vm.provision :shell,
              :keep_color => true,
              :inline=> ' ( echo sleeping 40 secs ; sleep 40 ; echo sleep again for 40 secs ; sleep 40 ) | tee /tmp/out'


             config.ssh.private_key_path = "./id_rsa"

             config.vm.provider :rackspace do |rs|
                rs.username        = "bozo"
                rs.api_key         = "the-clown"
                rs.flavor          = /1 GB Performance/
                rs.image           = "bfa5783c-e40e-4668-adc1-feb0ae3d7a46"

                rs.public_key_path = "./id_rsa.pub"
                rs.rackspace_region = :dfw
             end

    end

1 个答案:

答案 0 :(得分:0)

我没有Rackspace帐户,但可能与以下问题相同:

How can I use "puts" to the console without a line break in ruby on rails?

尝试将此添加到您的Vagrantfile:

$stdout.sync = true
$stderr.sync = true