首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从一个虚拟机获取env var并将其传递到Vagrantfile中的另一个虚拟机?

要从一个虚拟机获取环境变量(env var)并将其传递到Vagrantfile中的另一个虚拟机,可以按照以下步骤进行操作:

基础概念

  1. 环境变量(Environment Variables):环境变量是在操作系统中存储的键值对,用于配置应用程序的行为。
  2. Vagrant:Vagrant是一个用于构建和管理虚拟机环境的工具,使用Vagrantfile来定义和配置虚拟机。

相关优势

  • 灵活性:通过环境变量可以灵活地配置虚拟机的行为,而不需要修改代码或配置文件。
  • 安全性:敏感信息可以通过环境变量传递,而不是硬编码在配置文件中。

类型

  • 系统级环境变量:在操作系统级别设置的环境变量。
  • 用户级环境变量:在特定用户会话中设置的环境变量。

应用场景

  • 配置管理:在不同的虚拟机之间共享配置信息。
  • 敏感信息传递:安全地传递API密钥、数据库密码等敏感信息。

解决方案

假设我们有两个虚拟机:vm1vm2。我们需要从vm1获取环境变量并将其传递到vm2

步骤1:在vm1中设置环境变量

首先,在vm1中设置环境变量。可以通过命令行或脚本进行设置。

代码语言:txt
复制
export MY_ENV_VAR="some_value"

步骤2:将环境变量导出到文件

将环境变量导出到一个文件中,以便在Vagrantfile中使用。

代码语言:txt
复制
echo "export MY_ENV_VAR=\"$MY_ENV_VAR\"" > /tmp/env_vars.sh

步骤3:在Vagrantfile中传递环境变量

在Vagrantfile中,可以使用provision脚本来将环境变量从vm1传递到vm2

代码语言:txt
复制
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

步骤4:启动Vagrant环境

启动Vagrant环境并验证环境变量是否成功传递。

代码语言:txt
复制
vagrant up

参考链接

通过上述步骤,你可以从一个虚拟机获取环境变量并将其传递到Vagrantfile中的另一个虚拟机。这种方法不仅灵活,而且可以确保敏感信息的安全传递。

相关搜索:如何在node.js中创建会话变量并将其从一个路由传递到另一个路由?获取从一个CSV文件中获取数据并将其插入到另一个CSV文件中的Python代码的帮助如何从一个docker项目中的mongodb获取数据并将其插入到另一个项目的mongodb中如何从选定的li获取文本值,并使用js将其传递给另一个li中的输入。如何将React中的状态从一个类传递到另一个类?如何将变量从一个If语句传递到Powershell中的另一个If语句?如何在JProfiler中获得从一个方法传递到另一个方法的数据大小?如何通过ReactJS中的函数将数据从一个组件传递到另一个组件?如何将laravel中的请求对象从一个文件传递到另一个文件?如何从一个pandas dataframe中获取行值,并将其用作从另一个dataframe中获取值的引用如何在python中从一个类中获取变量的数据到另一个类中?如何将索引从一个微件传递到flutter中的另一个微件如何通过angular中的服务将数据从一个表单(输入)传递到另一个组件如何使用php中的select选项将值从一个页面传递到另一个页面?如何从一个模型中获取数据,并将其显示为django中另一个模型中的下拉列表如何从一个表中选择数据并将其插入到另一个包含新列的表中如何将edittext字符串从一个活动传递到另一个活动中的方法?如何从一个列表中获取一个值并将其应用于另一个列表中的所有值如何将数据从一个组件传递到另一个组件,并将数据存储到vue.js中的数组中?如何将值从一个方法传递到同一个类中的另一个方法?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Vagrant入门

要初始化一Vagrant项目,使用命令vagrant init命令,使用该命令后,会在当前目录创建一名为Vagrantfile配置文件,修改该文件改变Vagrant项目的行为。...如果需要,可以将该配置文件Vagrantfile加入项目的版本控制,这样团队其它开发者就可以快速建立起开发环境已进行运行调试了。...提示: 默认配置下,虚拟机/vagrant目录与主机上项目目录是同一目录,该目录所有操作都会自动同步。.../usr/bin/env bash apt-get update apt-get install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www...1.4 网络配置 Vagrant提供了端口转发功能,通过将虚拟机端口映射到主机不同端口,我们可以在主机中使用映射后端口访问虚拟机服务。

89610

使用Vagrant将您笔记本电脑刻录到虚拟机

下载适配于您适配于您目标操作系统Vagrant安装,再次选择默认设置进行安装。 经过上面的准备,您已经准备您第一虚拟机安装了SSH。...创建一Ubuntu虚拟机 在Windows上启动命令提示符或在Mac上启动终端,运行以下命令来启动Ubuntu虚拟机。 cd你想保留Vagrant地方。如果需要,创建一。...但是,如果您想将Vagrant用作开发和自动化环境,则不仅需要了解上述简单配置步骤,还要制定出基于Vagrant解决方案。 所有使用Vagrant配置虚拟机配置都存储在Vagrantfile。...以下是的生命周期阶段是使用相关Vagrant命令: up - 该命令用于启动Vagrantfile定义虚拟机。如果它还没有在主机上,它将被创建为新。客户机启动运行后,用户就可以登录。...把它带到生产环境 如果将我们前面看到Ansible这样CM提供者用于构建基于Vagrant开发环境,那么将其推广生产环境是非常容易

1.1K100
  • 使用 Jenkins + Ansible 实现自动化部署 Nginx

    使用 Vagrant 启动一台虚拟机,用于部署 Nginx。使用 Vagrant 是可选,读者可以使用 VirtualBox 启动一虚拟机。使用 Vagrant 完全是为了自动化搭建实验环境。...Vagrant:虚拟机管理工具,通过它,我们可以使用文本来定义、管理虚拟机。 Ansible:自动化运维工具 Docker Compose:它是一用于定义和运行多容器 Docker 应用程序工具。...将日志解锁密码输入表单。然后就一步步按提示安装即可。 ?...启动目标机器,用于部署 Nginx 在命令行执行以下命令: vagrant up 注意,Vagrantfile 文件 config.vm.box 值必须改成你 vagrant box 。...目前主机连接信息(SSH 密码)是明文写在 host_vars/192.168.52.10 文件,存在安全风险。 没有介绍如何当 Java 应用部署时,如何自动更新 Nginx 配置。

    3.6K30

    带有Vagrant和VirtualboxElasticsearch集群

    我们准备一名为'Vagrantfile'文本文件,其中包含我们要构建集群高级详细信息。在命令提示符下运行将生成一可以根据自己喜好进行编辑示例文件。...以下是我们文件如何满足第2节规定要求。 Vagrantfile # - * - mode:ruby - * - 它是一Ruby脚本,但是我不需要知道很多Ruby。...我们选择' private_network '模式设置IP地址(#15)。这为我们提供了第2节我们想要网络模型。 #19行,即将供应工具和应用程序虚拟机。非常强大和方便。...关键是要知道Vagrant会自动在主机和来宾之间启用一共享目录。这是文件'Vagrantfile'所在目录。在guest虚拟机上,此目录以“/ vagrant”形式访问。...属于群集所有节点都具有相同“cluster.name”。从主机和guest虚拟机之间共享一些样板配置文件开始,上面的脚本根据在配置期间传递给每个guest虚拟机参数来修改它们。

    1.4K30

    vagrant学习笔记 - provision

    shell或path参数 env hash 传递给脚本环境变量 binary boolean 是否替换windows行结束符,这个参数名有点奇怪 privileged boolean 是否提权运行...2.3 环境变量 为命令行指定环境变量,env格式为hash,是一hash对象列表,多个环境变量,多次配置env。...Tips: env新增环境变量,是顺序执行赋值操作,实例JAVA_HOME,系统中原来是没有的,如果JAVA_HOME和PATH这两参数顺序换一下,把JAVA_HOME放在后面,PATH在拼接JAVA_HOME.../Vagrantfile", destination: "Vagrantfile" 将host主机 "./Vagrantfile" 上传到 vm虚拟机目标文件 "./Vagrantfile" 。...5.2 Docker 面向容器虚拟解决方案 Docker 是一开源应用容器引擎,让开发者可以打包他们应用以及依赖包可移植容器,然后发布到任何流行 Linux 机器上。

    1.4K20

    From Docker to Kubernetes(二)- Docker Network

    参考Vagrant Getting Started Vagrant常用命令 vagrant up # 启动当前目录下Vagrantfile设置虚拟机 vagrant halt # 关闭虚拟机 vagrant...veth 从名字上来看是 Virtual ETHernet 缩写,它作用很简单,就是要把从一 network namespace 发出数据包转发到另一个 namespace。...veth 设备是成对,一是 container 之中,另一个在 container 之外,即在真实机器上能看到。...创建配置正确后,向其一端输入数据,VETH会改变数据方向并将其送入内核网络子系统,完成数据注入,而在另一端则能读到此数据。...(Namespace,其中往veth设备上任意一端上RX数据,都会在另一端上以TX方式发送出去)veth工作在L2数据链路层,veth-pair设备在转发数据包过程并不串改数据包内容。

    51220

    使用Vagrant在你电脑上构建独立虚拟开发环境

    通过上面的准备,让我们马上创建第一Ubuntu虚拟机通过SSH尝试连接它吧。...创建一Ubuntu虚拟机 在Windows上启动命令提示符或在Mac上启动终端,运行以下命令来创建启动你Ubuntu虚拟机。 使用终端跳转到你为这个虚拟机准备文件夹。...还记得上面的第一条init命令吗,它会将虚拟机配置写入当前目录下Vagrantfile文件。当然你也可以自行配置此文件名称和位置。...以下是Vagrant各个命令对应生命周期阶段和一些相关说明: up - 该命令用于启动Vagrantfile定义虚拟机。如果它还没有在主机上,它将被创建。客户机启动运行后,用户可以登录。...推广至生产环境 如果我们使用像前面提到Ansible这样CM提供者来构建基于Vagrant开发环境,将其推广生产是非常容易

    1.2K120

    Linux 逻辑卷 LVM 管理完整初学者指南

    为了帮助你,我已经准备了一简单 Vagrantfile,你可以用它来用 VirtualBox 启动一非常轻量级虚拟机。此虚拟机具有三额外磁盘,您和我可以将它们用于下面的命令示例。...在文件系统某处创建一目录,并将以下内容保存在该文件,名为Vagrantfile....(确保您与 Vagrantfile 位于同一目录): vagrant up 机器运行后,您可以使用vagrant sshSSH 连接到它运行本文中示例命令。...列出可用物理卷 您可以使用三命令来获取可用物理卷列表pvscan,pvs和pvdisplay。您通常不需要向这些命令传递任何内容。...将其挂载到您想要文件系统任何位置。 在本节,您将学习, 如何创建逻辑卷。 对逻辑卷常用操作。 调整逻辑卷大小。 删除逻辑卷。 实用程序:所有卷组实用程序名称都以 开头lv,代表逻辑卷。

    4.4K30

    保姆级教程:Vagrant 从入门超神玩法

    3️⃣ Vagrant 虚拟机系统命令 初始化虚拟机系统 vagrant init luciferliu/oracle11g 初始化虚拟机系统之后,会自动生成一Vagrantfile文件,可自定义编辑...刚安装 Vagrant 相当于一没有武装战士,想要拥有强大战斗力,就需要用插件来全副武装。Vagrant 具有许多开箱即用强大功能,可以让你环境启动运行。...第四步:使用 vagrant-share 插件,分享你虚拟机: 这里有小前提:需要环境变量配置 ngrok ,否则 vagrant 无法获取到改命令: export VG_HOME='/opt/vagrant...官网下载地址:https://www.packer.io/downloads 这里有小前提:需要环境变量配置 packer ,否则 vagrant 无法获取到改命令: export VG_HOME...此部分下面的部分提供了有关如何从系统删除该目录更详细说明。

    8.5K62

    Vagrant搭建Linux环境

    配置虚拟机信息 config.vm.network :forwarded_port, guest: 80, host: 80 配置虚拟机80本机80端口,其中guest是虚拟机 config.vm.network...:private_network, ip: 192.168.56.100(根据自己网卡设定) 配置虚拟机IP,可以配置和物理机一样IP(具体参考Vagrantfile) config.vm.synced_folder...“D:/www”, “/var/www/html” 目录映射 5、启动 vagrant up 6、导出镜像 vagrant package 这样就直接用这个镜像来制作虚拟机 备注 1、可能因为机器没有开启虚拟机化导致启动失败...,这样可以打开gui看下提示信息 2、打开virtual box查看使用是那块网卡上网,要设置同一网络!...是box名) vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行除开Vagrantfile配置都不会保留)

    1.9K40

    Vagrant 基本使用操作

    status 命令可以查看当前虚拟机状态 (running 表示正在运行) vagrant status 虚拟机启动完成之后, 通过如下命令 ssh 登陆虚拟机 (默认用户名和密码都是 vagrant...–name=centos/7 {local_path} 添加一指定name镜像获取路径(也可以是镜像获取URL) vagrant up 根据当前路径 Vagrantfile 配置启动虚拟机 vagrant...删除当前虚拟机 vagrant provision 执行 Vagrantfile 配置 provision 操作指令 Vagrantfile 配置文件 常用相关配置说明 Vagrantfile...Bridged Adapter 网桥模式 通过主机网卡, 架设了一条桥连入网络. 因此, Guest 能被分配到一网络独立 IP , 所有网络功能和真实机器是一样...., 这样就可以在单机模拟分布式机器情况啦, 感觉如果有同学在学习 k8s 的话, 这种方式应该还是挺轻松, 通过一配置文件可以管理多台虚拟机.

    73430

    本地开发环境搭建利器--vagrant

    ,官网下载速度实在慢(有需要可以联系笔者获取下载好安装包),文件如下: $ ls CentOS-7-x86_64-Vagrant-2002_01.VirtualBox.box VirtualBox...,会生成一 Vagrantfile,即配置文件。...Vagrantfile 配置 常用配置如下所示: config.vm.box:该名称使用 vagrant init 后面跟名字 config.vm.hostname:配置虚拟机主机名 config.vm.network...config.vm.provision:我们可以通过这个配置在虚拟机第一次启动时候进行一些安装配置 还有更详细配置,参见:https://www.vagrantup.com/docs/vagrantfile...启动 vagrant: #启动虚拟机 vagrant up #进入虚拟机 vagrant ssh 参考 Vagrant配置文件Vagrantfile详解-2 如何处理VirtualBox启动错误消息:

    1.2K20

    开始 Vagrant 之旅

    你需要一干净环境,将所有的依赖关系放在一地方,以便以后更方便。 或者你可能工作在 DevOps ,你所服务开发人员用模糊依赖关系来编写代码,这使得测试变得更加困难。...你需要一种方法来获得一干净盒子,将代码放入其中,通过它运行代码,而且你希望这些环境是一次性和可重复。 那么选择 Vagrant 吧。...mkdir ~/myproject cd ~/myproject vagrant init debian/contrib-jessie64 vagrant up 最后一条命令将根据需要从仓库获取或更新...在虚拟机 /vagrant 下建立一文件它会立即复制主机上,反之亦然。注意,有些沙盒并没有安装 VirtualBox 附加功能,所以拷贝只能在启动时才起作用。...快速更改虚拟机,它也将其同步主机上“官方”副本 。

    52520

    使用Vagrant在几秒钟内调试内核

    所有Windows内核黑客(从初学者专业人士)都知道,设置和管理用于内核调试虚拟机可能很耗时。Vagrant是一免费开源工具,可以自动创建和自动化VM。...这将创建我们刚刚创建虚拟机“快照”,并将其打包名为invokestatic/win10ltsc。 开始 现在我们盒子已经设置好了,让我们充分利用它。...首先,Vagrantfile在包含以下内容空目录创建一: 您必须稍微修改一下此文件以满足您需要,尤其是win10.vm.box名称以及可能内核调试端口。...一切设置完成后,继续vagrant up在您项目目录运行。这将使用中指定所有设置创建一VM Vagrantfile。...请注意,由于此映射是作为网络共享实现,因此Windows内核无法从中加载驱动程序,因此在加载之前,必须将其复制C:驱动器上某个位置。这也可以自动化。

    2.9K550

    使用 Vagrant 在 VirtualBox 安装 Linux 虚拟机

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编注明来源。 1. 导入 本文介绍如何使用 Vagrant 在 VirtualBox 快速安装 Linux 虚拟机。...centos/7 初始化后,Vagrant会在当前目录下创建一Vagrantfile,达到初始化一对应镜像环境,并提示使用命令Vagrant up来启动这个虚拟环境,该语句会从镜像仓库下载对应镜像来启动虚拟环境...Vagrant,所以可以通过这种连接方式以Vagrant账户连接虚拟系统,命令如下: vagrant ssh 4.总结 今天介绍了使用Vagrant在VirtualBox快速安装Linux虚拟机。...为了方便使用下方列举了Vagrant常见命令: 命令 描述 vagrant box add 添加box操作 vagrant init 初始化box操作,会生成vagrant配置文件Vagrantfile...resume 恢复本地虚拟环境 vagrant package 打包命令,可以把当前运行虚拟机环境进行打包 vagrant status 获取当前虚拟机状态 vagrant global-status

    59540
    领券