流浪者默认配置
vagrant default configuration
我有一些配置必须始终存在于 Vagrantfile 中,当 init 为 运行 时,无论盒子如何。
例如,当我 运行 vagrant init ubuntu/trusty64
或 vagrant init centos/7
时,这必须存在于两个 Vagrantfiles 中:
config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
end
config.vm.provision "shell", inline: <<-SHELL
# obligatory provisioning goes here
SHELL
有什么方法可以配置 vagrant,这样当我 运行 vagrant init
这条线已经存在于 Vagrantfile 中了吗?
默认情况下你不能真正改变这个行为,不幸的是 vagrant init
没有建议使用你自己的 Vagrantfile 的选项(那会很整洁但没有)。有 2 个模板(参见 https://github.com/mitchellh/vagrant/tree/master/templates/commands/init)可以使用,默认模板和最小模板。
您还有以下选择:
- 覆盖默认模板
Vagrantfile.erb
在您的系统中搜索文件(在 mac 上,它应该在 /opt/vagrant/embedded/gems/gems/vagrant-1.9.1/templates/commands/init/Vagrantfile.erb
中的某处,具体取决于您的版本)并将其更改为您需要的内容。
你可以在 .vagrant.d
目录下有一个全局 Vagrantfile
,它将应用于你所有的 Vagrantfiles。请参阅 加载顺序和合并
在 vagrantfile documentation.
使用新命令编写一个插件来创建 Vagrantfile。虽然这可能有点矫枉过正
试试这个
https://www.vagrantup.com/docs/other/environmental-variables.html#vagrant_default_template
将export VAGRANT_DEFAULT_TEMPLATE=~/.vagrant.d/Vagrantfile.erb
放入~/.bash_profile
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
然后source ~/.bash_profile
vagrant init ubuntu/bionic64
效果很好!
我有一些配置必须始终存在于 Vagrantfile 中,当 init 为 运行 时,无论盒子如何。
例如,当我 运行 vagrant init ubuntu/trusty64
或 vagrant init centos/7
时,这必须存在于两个 Vagrantfiles 中:
config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
end
config.vm.provision "shell", inline: <<-SHELL
# obligatory provisioning goes here
SHELL
有什么方法可以配置 vagrant,这样当我 运行 vagrant init
这条线已经存在于 Vagrantfile 中了吗?
默认情况下你不能真正改变这个行为,不幸的是 vagrant init
没有建议使用你自己的 Vagrantfile 的选项(那会很整洁但没有)。有 2 个模板(参见 https://github.com/mitchellh/vagrant/tree/master/templates/commands/init)可以使用,默认模板和最小模板。
您还有以下选择:
- 覆盖默认模板
Vagrantfile.erb
在您的系统中搜索文件(在 mac 上,它应该在 /opt/vagrant/embedded/gems/gems/vagrant-1.9.1/templates/commands/init/Vagrantfile.erb
中的某处,具体取决于您的版本)并将其更改为您需要的内容。
你可以在
.vagrant.d
目录下有一个全局Vagrantfile
,它将应用于你所有的 Vagrantfiles。请参阅 加载顺序和合并 在 vagrantfile documentation.使用新命令编写一个插件来创建 Vagrantfile。虽然这可能有点矫枉过正
试试这个 https://www.vagrantup.com/docs/other/environmental-variables.html#vagrant_default_template
将export VAGRANT_DEFAULT_TEMPLATE=~/.vagrant.d/Vagrantfile.erb
放入~/.bash_profile
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
然后source ~/.bash_profile
vagrant init ubuntu/bionic64
效果很好!