zoukankan      html  css  js  c++  java
  • Vagrant 手册之 Vagrantfile

    原文地址

    Vagrantfile 是一种非常灵活的配置格式。语法基于 Ruby,可以用它做很多事情。在本页使用一些提示和技巧时,请注意正确使用它们。

    1. 使用循环定义虚拟机

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

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

    警告:多机器定义和 provider 覆盖的内部部分是延迟加载的(The inner portion of multi-machine definitions and provider overrides are lazy-loaded)。如果更改配置中使用的变量的值,这可能会导致问题。例如,下面的循环不起作用:

    # 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. 在 ssh 会话中覆盖主机 locale

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

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

    更改仅在 Vagrantfile 中可见。

  • 相关阅读:
    hdu 4183(网络流)
    hdu 1565&hdu 1569(网络流--最小点权值覆盖)
    hdu 1532(最大流)
    HDU 2141 Can you find it?
    HDU 1096 A+B for Input-Output Practice (VIII)
    HDU 1095 A+B for Input-Output Practice (VII)
    HDU 1094 A+B for Input-Output Practice (VI)
    HDU 1093 A+B for Input-Output Practice (V)
    HDU 1092 A+B for Input-Output Practice (IV)
    HDU 1091 A+B for Input-Output Practice (III)
  • 原文地址:https://www.cnblogs.com/kika/p/10851643.html
Copyright © 2011-2022 走看看