Vagrant 搭建虚拟机环境

news2024/11/28 10:55:20

        用 Vagrant 和 VirtualBox 来快速搭建一个开发环境是非常方便的。简单整理一下 Vagrant 搭建 VirtualBox 虚拟机的记录。

        首先安装 Vagrant 和 VirtualBox,这一步就直接省略了。自行安装即可。

        什么是 Vagrant,我们这里引用 OSChina 上的一段话来进行解释:

Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境。功能特性:支持快速新建虚拟机 支持快速设置端口转发 支持自定义镜像打包(原始镜像方式、增量补丁方式) 基本上日常能用到的基础配置都能快速设置 支持开机启动自动运行命令 可以自己写扩展

https://www.oschina.net/p/vagrant?hmsr=aladdin1e1

1.创建一个没有中文路径的目录,我这里创建的路径是

e:\vagrant\mall-node

2.启动virtual box

3.vagrant的仓库

https://app.vagrantup.com/boxes/search

4.执行vagrant init命令

        在新建的目录下执行 vagrant init 命令 

PS E:\vagrant\mall-node> vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

        执行完命令后,在 e:\vagrant\mall-node 下建立了一个 Vagrantfile 文件

5.在 Vagrantfile 文件所在的目录下执行 vagrant up 命令

PS E:\vagrant\mall-node> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: mall-node_default_1668852218722_77593
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Rsyncing folder: /cygdrive/e/vagrant/mall-node/ => /vagrant

执行完成后,查看 virtual box 多了一台虚拟机

6.执行 vagrant ssh 访问虚拟机中的 CentOS 

PS E:\vagrant\mall-node> vagrant ssh
[vagrant@localhost ~]$ ll
total 0
[vagrant@localhost ~]$ pwd
/home/vagrant

7.查看虚拟机的网卡

[vagrant@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:4d:77:d3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 69311sec preferred_lft 69311sec
    inet6 fe80::5054:ff:fe4d:77d3/64 scope link
       valid_lft forever preferred_lft forever

        lo是回环地址,eth0是虚拟机的IP地址,IP地址是10.0.2.15

8.修改ip地址

        打开Vagrantfile文件,搜索“private_network”,可以找到config.vm.network配置项。可以看到里面有个IP地址。我们查看一下我们本机的IP地址,命令如下:

ipconfig

        可以看到virtual box虚拟网卡的ip地址如下:

以太网适配器 VirtualBox Host-Only Network #2:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::d55e:2249:a3ec:9d26%3
   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0

        可以看到该IP地址为192.168.56.1,我们将对应的Vagrantfile的ip地址修改192.168.56.101,其实只要在一个网段就可以,我这里使用了100。

        修改以后,将其保存。然后关闭虚拟机,启动虚拟机,连接虚拟机,查看它的IP地址。一顿操作命令如下:

[vagrant@localhost ~]$ poweroff
==== AUTHENTICATING FOR org.freedesktop.login1.power-off ===
Authentication is required for powering off the system.
Authenticating as: root
==== AUTHENTICATION COMPLETE ===
Connection to 127.0.0.1 closed by remote host.
Connection to 127.0.0.1 closed.
PS E:\vagrant\mall-node> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/e/vagrant/mall-node/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
PS E:\vagrant\mall-node> vagrant ssh
Last login: Sun Nov 20 01:45:46 2022 from 10.0.2.2
[vagrant@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:4d:77:d3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 86384sec preferred_lft 86384sec
    inet6 fe80::5054:ff:fe4d:77d3/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:10:a9:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.101/24 brd 192.168.56.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe10:a91d/64 scope link
       valid_lft forever preferred_lft forever

        可以看到,在虚拟机中又添加了一块虚拟网卡,并且IP地址是192.168.56.101。

9.使用 finalshell 连接

        打开 finalshell,然后建立 SSH 连接,编辑相关的登录信息,如下图

        注意这里选择公钥登录,用户名填写 vagrant,私钥的文件在 E:\vagrant\mall-node\.vagrant\machines\default\virtualbox 目录下的 private_key 中,大家把路径替换成自己的路径即可。配置好以后进行连接就可以了。

注意:

        如果在执行 vagrant init 后,执行 vagrant up 无法启动虚拟机的话,可以在 Vagrant 仓库中下载 centos/7 文件。如下图:

        下载后通过 add 命令添加即可,命令如下:

vagrant init
vagrant box add centos/7 .box文件路径
vagrant up
vagrant ssh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浏览器IndexedDB模块损坏及解决办法

浏览器IndexedDB模块损坏及解决办法 表现 提示错误码&#xff1a; UnknownError Internal error opening backing store for indexedDB.open. indexedDB无法展开。 复现方式 进入以下路径 Mac C:\用户\xxx\AppData\Local\Google\Chrome\User Data\Default\IndexedDB Windo…

吴恩达2022机器学习——第二部分高级学习算法第三周笔记

目录1.1决定下一步做什么&#xff08;构建机器学习的实用建议&#xff09;1.2模型评估1.3模型选择&交叉验证测试集的训练方法模型选择总结举例2.1通过偏差与方法进行诊断2.2正则化、偏差、方差1.1决定下一步做什么&#xff08;构建机器学习的实用建议&#xff09; 从一个例…

C++运算符重载【加号、左移、递增、指针、赋值、中括号、关系、函数调用】,统统载了

学习目标 在c对象的学习中&#xff0c;我们会使用到运算符重载&#xff0c;接下来大家一起学习一下吧&#xff01; 学习内容 运算符重载&#xff1a; operator overloading运算符重载是一种形式的C多态 即对已有运算符进行重新定义&#xff0c;赋予新的功能&#xff0c;使其…

我的创作纪念日

机缘 成为创作者的初心&#xff1a; 让大家目光向我看齐&#xff0c;来我这CV&#xff08;狗头&#xff09; 收获 在创作的过程中都有哪些收获 获得了28粉的关注获得了252赞、83评论、233474阅读量、548收藏 &#xff08;还好我自己点了几个赞&#xff0c;不然250赞显得我好…

安洵杯-复现

reee 主要就是这个函数 void __noreturn sub_401640() {char Buffer[52]; // [esp0h] [ebp-60h] BYREFchar ArgList[16]; // [esp34h] [ebp-2Ch] BYREFint v2; // [esp44h] [ebp-1Ch]CHAR Text[13]; // [esp48h] [ebp-18h] BYREFint v4; // [esp55h] [ebp-Bh]__int16 v5; // [e…

《Redis实战篇》一、短信登录

1.1、导入黑马点评项目 1.1.1 、导入SQL 1.1.2、有关当前模型 手机或者app端发起请求&#xff0c;请求我们的nginx服务器&#xff0c;nginx基于七层模型走的事HTTP协议&#xff0c;可以实现基于Lua直接绕开tomcat访问redis&#xff0c;也可以作为静态资源服务器&#xff0c;轻…

Java并发常见面试题(二)

为什么要使用多线程&#xff1f; 从整体上来看 从计算机底层来说&#xff1a; 线程可以看作是轻量级的进程&#xff0c;是最小的程序执行单位&#xff0c;线程间的切换和调度的成本远远小于进程。另外&#xff0c;多核CPU时代&#xff0c;多个线程可以同时运行&#xff0c;这…

PCB布线及后仿真验证过程(干货满满,建议收藏)

一 布线的基本要求 1. 布线次序考虑 1) 规则驱动布线遵循的基本步骤 定义禁布区&#xff0c;或控制区&#xff1b; 若有规则约束&#xff0c;要求设置规则&#xff1b; 试布线&#xff0c;评估单板是否可以布通&#xff0c;若不能布通&#xff0c;需要采用策略&#x…

Linux测试常用命令

Linux测试常用命令1.Linux安装2.linux常用命令1.一些Linux环境下的基本操作2. 目录管理3.文件管理1.Linux安装 在VMWare虚拟机上安装linux操作系统&#xff0c;得到一个ip&#xff0c;然后通过MobaXterm远程连接linux并进行命令操作。 公司测试的时候是直接拿到服务器ip&…

食品经营许可证办理要什么材料

食品经营许可证办理要什么材料 1.食品经营许可申请书&#xff1b; 2.营业执照或者其他主体资格证明文件复印件&#xff1b; 3.法定代表人&#xff08;负责人&#xff09;和食品安全管理人员的名册、身份证明复印件。申请人委托他人办理食品经营许可申请的&#xff0c;代理人…

代码审计-2 SQL注入

代码审计之SQL注入审计流程ThinkPHP框架ThinkPHP的路由PbootCMSPbootCMS留言处存在SQL注入代码分析ThinkPHP框架 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架 MVC模式的php开发框架 MVC&#xff1a;一种软件架构模式&#xff0c;把系统分为三个部分&#xff1a…

基于OpenDaylight和OVSDB搭建VxLAN网络

1 简介 本文主要介绍基于OpenDaylight子项目OVSDB中的southbound组件来搭建VxLAN网络&#xff0c;包括初始环境搭建和southbound RestConf API调用等。OpenDaylight中的northbound组件也可以用来创建VxLAN网络&#xff0c;但northbound不是基于yang的且OVSDB封装的不好&#x…

overflow属性详解

overflow属性详解_桃花扇J的博客-CSDN博客_overflow属性 原链接 overflow是对溢出内容的处理&#xff0c;有四个属性值visible&#xff0c;hidden&#xff0c;scroll&#xff0c;auto&#xff0c;且可以分别设置overflow-x&#xff0c;overflow-y&#xff0c;需要注意的是&am…

从夜间照明到随动转向速锐得解码比亚迪唐车灯升级改装技术方案

汽车大灯犹如人的眼睛一样&#xff0c;在汽车的正脸&#xff0c;灵魂与窗口一样的存在&#xff0c;我们通过技术手段将汽车大灯升级为更高亮度、更智能化&#xff0c;是从根本解决行车安全问题。行车灯发展了几十年&#xff0c;已经不仅限于满足“夜间照明”的功能&#xff0c;…

lt基站学习总结

目录 1.nanocell基站的介 2.lte的网络结构 2.1 网络实体 2.2 功能划分 2.3功能描述 2.4业务类型 2.5语音回落原理 3 S1接口上用户注册消息的简介 3.1 S1接口的位置 3.2 S1接口的协议栈关系 3.3 S1接口建立实例 4 3g用户附着流程 5. Lte用户开机附着过程 1.nanocell基站…

扫描点读笔搭载北京君正X2000多核异构跨界处理器的案例

外研通云畅VT-S30扫描点读笔搭载北京君正X2000多核异构跨界处理器&#xff0c;X2000多核异构跨界处理器主要面向于智能音频、图像识别、智能家电、智能家居、智能办公等五大领域。CPU采取三核结构&#xff0c;搭载双XBurst2&#xff0c;主频1.2GHz&#xff0c;跨界第三核XBurst…

Vue3.0五问五答

1、Vue 3.0 性能提升主要是通过哪几方面体现的&#xff1f; 响应式系统升级 首先来看一下响应式系统升级。我们都知道Vue2的时候&#xff0c;数据响应式的原理使用的是defineProperty&#xff0c;在初始化的时候会遍历data中的所有成员。通过defineProperty&#xff0c;把对象的…

Clion代码提示功能消失无法标出错误代码

Clion就不用多说了吧&#xff0c;jetbrains永远的神&#xff01; 初次遇到这个问题也不知道是怎么回事&#xff0c;突然代码写着写着感到十分顺利。要是按照往常&#xff0c;依据jetbrains的强迫症&#xff0c;非要对你写的代码催毛求疵找出有误的地方&#xff0c;或者警告&…

spark安装与入门

下载 https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz Local 模式 将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux&#xff0c;解压 tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module 重命名 cd /opt/module mv spark-3.0.…

Vue3项目搭建教程

找到一个你想要创建Vue项目的目录&#xff08;本文以C:\Users\XTT\Desktop\新建文件夹\project为例&#xff09;。在此目录打开命令行&#xff0c;输入以下命令&#xff1a; 回车&#xff0c;如果是第一次用这种方式创建Vue3项目&#xff0c;命令行会提示安装 create-vue 包&…