• virtualbox+vagrant学习-4-Vagrantfile-4-Tips & Tricks


    Tips & Tricks

    Vagrantfile是一种非常灵活的配置格式。因为它只是Ruby,所以你可以用它做很多事情。然而,同样的道理,因为它是Ruby,所以有很多方法可以朝自己的脚开枪(即伤到自己)。在使用本页上的一些提示和技巧时,请注意正确使用它们。


    1.Loop Over VM Definitions 循环实现虚拟机定义

    如果你想对许多多机机器应用稍微不同的配置,可以使用循环来实现这一点。例如,如果你想创建三个机器:

    (1..3).each do |i|
      config.vm.define "node-#{i}" do |node|
        node.vm.provision "shell",
          inline: "echo hello from node #{i}"
      end
    end

    ⚠️多机器定义和提供程序重写的内部部分是延迟加载的。如果更改配置中使用的变量的值,可能会导致问题。

    例如,下面的循环不工作:

    # THIS DOES NOT WORK!
    for i in 1..3 do
      config.vm.define "node-#{i}" do |node|
        node.vm.provision "shell",
          inline: "echo hello from node #{i}"
      end
    end

    Ruby中的for i in ...结构实际上在每次迭代中都修改了i的值,而不仅仅只是复制。因此,当你运行这个时,每个节点实际上都将提供相同的文本。
    这是一个很容易犯的错误,vagrant并不能真正保护它,所以我们能做的最好的就是在这里提到它。

    2.Overwrite host locale in ssh session在ssh会话中覆盖主机区域设置

    通常,宿主语言环境变量被传递给客户。如果客户软件不支持主机区域设置,可能会导致失败。一个可能的解决方案是覆盖Vagrantfile中的locale:

    ENV["LC_ALL"] = "en_US.UTF-8"
    
    Vagrant.configure("2") do |config|
      # ...
    end

     这个改变只在Vagrantfile文件中可见

  • 相关阅读:
    IIT(ISM) Virtual Farewell E Dictator's plan for Valentine's day! 二分
    HDU
    LightOJ
    HDU 4407 Sum 容斥原理
    HDU 4686 Arc of Dream 矩阵快速幂
    uoj418
    Gym101237C The Palindrome Extraction Manacher
    Codeforces 100032 K
    codechef Suffix Palindromes
    Codeforces 932G Palindrome Partition
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/10175146.html
Copyright © 2020-2023  润新知