• 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文件中可见

  • 相关阅读:
    mysql 查看删除触发器等操作
    gtid同步异常处理
    使用MongoDB数据库(2)(三十六)
    使用MongoDB数据库(1)(三十五)
    使用Redis数据库(2)(三十四)
    使用Redis数据库(1)(三十三)
    多数据源配置与使用(2)(三十二)
    多数据源配置与使用(1)(三十二)
    使用Spring-data-jpa(2)(三十一)
    使用Spring-data-jpa(1)(三十)
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/10175146.html
Copyright © 2020-2023  润新知