Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant 浮动默认配置_Vagrant_Vagrantfile - Fatal编程技术网

Vagrant 浮动默认配置

Vagrant 浮动默认配置,vagrant,vagrantfile,Vagrant,Vagrantfile,我有一些配置,在运行init时,这些配置必须始终存在于Vagrantfile中,而不考虑框。 例如,当我运行vagrantinit ubuntu/trusty64或vagrant init centos/7时,这必须出现在两个vagrant文件中: config.vm.provider "virtualbox" do |vb| vb.memory = 2048 end config.vm.provision "shell", inline: <<-SHELL # ob

我有一些配置,在运行init时,这些配置必须始终存在于Vagrantfile中,而不考虑框。
例如,当我运行vagrant
init ubuntu/trusty64
vagrant init centos/7
时,这必须出现在两个vagrant文件中:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 2048
 end

 config.vm.provision "shell", inline: <<-SHELL
   # obligatory provisioning goes here
 SHELL
config.vm.provider“virtualbox”do | vb|
vb.memory=2048
结束

config.vm.provision“shell”,内联:默认情况下,您无法真正更改此行为,不幸的是,
vagrant init
没有提供使用您自己的vagrant文件的选项(这很简单,但不存在)。可以使用两个模板(请参阅),一个是默认模板,另一个是最小模板

剩下的选项如下:

  • 覆盖默认模板
    Vagrantfile.erb
  • 在您的系统中搜索该文件(在mac上,它应该位于
    /opt/vagrant/embedded/gems/gems/vagrant-1.9.1/templates/commands/init/Vagrantfile.erb中的某个位置,具体取决于您的版本),并将其更改为您需要的文件

  • 您可以在
    .vagrant.d
    目录下拥有一个全局
    vagrant文件
    ,该文件将应用于您的所有vagrant文件。请参见加载顺序和合并 在

  • 使用新命令编写插件以创建文件。不过,这可能太过分了

  • 试试这个

    export VAGRANT\u DEFAULT\u模板=~/.VAGRANT.d/Vagrantfile.erb
    放入~/.bash\u配置文件中

    touch ~/.vagrant.d/Vagrantfile.erb 
    
    心满意足

    Vagrant.configure("2") do |config|
      config.vm.define "main"
      config.vm.box = "<%= box_name %>"
      <% if box_version -%>
      config.vm.box_version = "<%= box_version %>"
      <% end -%>
      <% if box_url -%>
      config.vm.box_url = "<%= box_url %>"
      <% end -%>
      # config.vm.network "forwarded_port", guest: 80, host: 8080
      config.vm.network "private_network", type: "dhcp"
      config.vm.provider "virtualbox" do |vb|
        vb.memory = "4096"
        vb.cpus = 4
      end
    end
    
    Vagrant.configure(“2”)do | config|
    config.vm.define“main”
    config.vm.box=“”
    config.vm.box_version=“”
    config.vm.box_url=“”
    #config.vm.network“forwarded_port”,来宾:80,主机:8080
    config.vm.network“private_network”,类型:“dhcp”
    config.vm.provider“virtualbox”do | vb|
    vb.memory=“4096”
    vb.CPU=4
    结束
    结束
    
    然后
    source~/.bash\u配置文件

    vagrant init ubuntu/bionic64


    它工作得很好

    哪一行
    vb.memory=2048
    ?您最好的选择可能是使用Ruby模板,然后编写一个脚本,从中生成您的Vagrant文件。@LipingHuang。我需要虚拟机配置和资源调配。谢谢,我最后选择了第二个选项。也许有人会发现它很有用:自从我在
    ~/.vagrant.d/Vagrantfile
    中添加了一些代码以来,我一直很困惑,但是它在
    vagrant init
    之后没有更改生成的Vagrantfile。然而,所有的变化都在流浪者上路后生效。