我通過我的本地環境變量是這樣的:如何在Vagrant中使用本地環境變量?
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |de|
de.vm.box = 'ubuntu/trusty64'
de.vm.hostname = 'virtual_machine'
de.vm.network 'public_network', bridge:ENV['NETWORK_INTERFACE'], ip:'192.168.2.170'
de.vm.provider "virtualbox" do |v|
v.memory = 4096
v.cpus = 2
end
de.vm.synced_folder '.', '/vagrant', disabled:true
de.vm.synced_folder '../../synced/shared/', '/shared/'
de.vm.synced_folder '../../synced/devops/', '/devops/'
install = ENV['DEVOPS_HOME'] + '/vagrant/lib/install'
de.vm.provision 'shell', path: install + '/basic'
de.vm.provision 'shell', path: install + '/java8', args: ['automatic']
de.vm.provision 'shell', path: install + '/aws_cli', args: [ENV['S3_AWS_ACCESS_KEY_ID'],ENV['S3_AWS_SECRET_ACCESS_KEY']]
setup = ENV['DEVOPS_HOME'] + '/vagrant/lib/setup'
de.vm.provision 'shell', path: setup + '/hosts'
sys = ENV['DEVOPS_HOME'] + '/vagrant/lib/system'
de.vm.provision 'shell', path: sys + '/add_user', args: ['virtual-machine',ENV['VIRTUAL_MACHINE_PASSWORD']]
steps = ENV['DEVOPS_HOME'] + '/vagrant/server/virtual_machine/steps'
de.vm.provision 'shell', path: steps + '/install_rserve'
end
顯然,我需要設置這個變量對我~/.profile
文件。但我想知道是否有另一種方式來做到這一點。我不需要通過Vagrantfile
來通知這件事,它看起來不太好。
其工作的一種方式 - 另一種解決辦法,如果你分發盒是這些變量加入到YAML文件(例如,兒子會工作的任何其他文件)和讀取文件到您的Vagrantfile,所以你不需要將變量設置爲你的bash。 –
你有沒有解釋這種方法的鏈接Frédéric?這似乎很有趣。順便說一句,我不會分發我的箱子,至少現在:) –
顯示我的設置在一個可見性答案的例子。並沒有真正的聯繫,因爲我已經通過不同的閱讀,但沒有特別的,但實際上我使用puppet和hiera來實現這一點,所以我共享相同的文件(不知道它的好壞,但我找到它方便) –