要从一个虚拟机获取环境变量(env var)并将其传递到Vagrantfile中的另一个虚拟机,可以按照以下步骤进行操作:
假设我们有两个虚拟机:vm1
和vm2
。我们需要从vm1
获取环境变量并将其传递到vm2
。
vm1
中设置环境变量首先,在vm1
中设置环境变量。可以通过命令行或脚本进行设置。
export MY_ENV_VAR="some_value"
将环境变量导出到一个文件中,以便在Vagrantfile中使用。
echo "export MY_ENV_VAR=\"$MY_ENV_VAR\"" > /tmp/env_vars.sh
在Vagrantfile中,可以使用provision
脚本来将环境变量从vm1
传递到vm2
。
Vagrant.configure("2") do |config|
config.vm.define "vm1" do |vm1|
vm1.vm.box = "ubuntu/bionic64"
vm1.vm.provision "shell", inline: <<-SHELL
echo "export MY_ENV_VAR='some_value'" > /tmp/env_vars.sh
vagrant ssh vm2 -c "sudo bash -c 'cat /tmp/env_vars.sh > /etc/environment'"
SHELL
end
config.vm.define "vm2" do |vm2|
vm2.vm.box = "ubuntu/bionic64"
vm2.vm.provision "shell", inline: <<-SHELL
source /etc/environment
echo $MY_ENV_VAR
SHELL
end
end
启动Vagrant环境并验证环境变量是否成功传递。
vagrant up
通过上述步骤,你可以从一个虚拟机获取环境变量并将其传递到Vagrantfile中的另一个虚拟机。这种方法不仅灵活,而且可以确保敏感信息的安全传递。
领取专属 10元无门槛券
手把手带您无忧上云