轻松搭建 VirtualBox + Vagrant + Linux 虚拟机

一、准备工作

首先,我们来了解一下搭建 VirtualBox + Vagrant + Linux 虚拟机所需的软件准备工作。

VirtualBox 的下载地址:您可以通过访问https://www.virtualbox.org/wiki/Downloads获取适用于您系统的版本。

Vagrant 的下载地址:前往https://www.vagrantup.com/downloads进行下载。

需要注意的是,在安装 VirtualBox 时,它可能会与一些软件存在冲突,例如红蜘蛛、360、净网大师等。如果您的电脑上安装了这些可能冲突的软件,需要先将其卸载,然后重启电脑,以确保 VirtualBox 能够正常安装和运行。

二、安装步骤

(一)VirtualBox 安装

1、访问https://www.virtualbox.org/wiki/Downloads,根据您的操作系统选择对应的安装包下载。

2、双击下载的安装包,打开安装向导。点击“Next”进入下一步。

3、在功能组件选择界面,通常默认选择即可,若有特殊需求可自行勾选。

4、选择安装路径,建议不要安装在系统盘(C 盘),可点击“Browse”选择其他磁盘。

5、选择快捷方式创建选项,根据个人习惯勾选。

6、弹出警告界面,提示安装网络组件会重置当前网络,点击“Yes”。

7、准备安装,点击“Install”开始安装。

8、等待安装完成,安装过程中可能会弹出一些提示,根据提示进行操作。

9、安装完成后,勾选“启动 Oracle VM VirtualBox 虚拟机”,点击“Finish”。

(二)Vagrant 安装

前往https://www.vagrantup.com/downloads,根据您的操作系统选择合适的版本进行下载。

1、双击下载的安装文件,按照默认设置一路点击“Next”进行安装。

2、安装完成后,打开命令行窗口,输入“vagrant -v”命令,输出版本号即表示安装成功。

(三)安装位置选择

1、VirtualBox:默认虚拟电脑位置下载安装的位置在c盘用户目录:如:“C:\Users\86135\VirtualBox VMs”,会大量占用C盘空间,建议修改到其他盘。按如下步骤操作:

打开 VirtualBox 程序,点击“管理”->“全局设定”(或按下快捷键 Ctrl + G),在“常规”栏里将“默认虚拟电脑位置”修改为其他容量较大的磁盘路径。

下载安装的虚拟机将在你设置的路径下:

2、Vagrant:对于 Windows 系统,新建系统环境变量“VAGRANT_HOME”,变量值设置为您期望的存储位置,如“E:\VirtualBox\.vagrant.d”。

通过以上步骤,您可以顺利完成 VirtualBox 和 Vagrant 的安装,并选择合适的安装位置。

三、初始化与启动虚拟机

(一)使用"vagrant init"命令初始化 Centos 虚拟机(以下以安装centos7为例)

首先,打开命令行窗口,执行 vagrant init 命令;

命令格式:

#vagrant init 命令格式
vagrant init 虚拟机镜像名称/版本号# 例如要创建一个centos7的虚拟机可以使用如下命令:
vagrant init centos/7

执行vagrant init centos/7命令会在当前目录下自动生成一个 Vagrantfile 配置文件。

(二)启动虚拟机的操作

在完成初始化配置后,即可启动虚拟机。在Vagrantfile所在目录,使用 vagrant up 命令启动虚拟机,此过程可能需要一些时间,Vagrant 将自动从镜像仓库(https://app.vagrantup.com/boxes/search)下载 CentOS 7 镜像,并在 VirtualBox 中创建和启动虚拟机。

 安装启动完成后,系统自动创建两个用户账号 root和vagrant, 密码均是 vagrant

四、网络配置

虚拟机网络配置至关重要,它直接影响到虚拟机的性能和可用性。

查看本机 IP

在进行虚拟机网络配置前,首先要查看本机 IP。这可以通过在命令行输入特定命令来实现,如在 Windows 系统中输入 ipconfig ,在 Linux 系统中输入 ifconfig 。通过这些命令,我们能够获取到本机的网络信息,包括 IP 地址、子网掩码和网关等,为后续的虚拟机网络配置提供重要参考。

修改虚拟机网络 IP

修改虚拟机网络 IP 是为了满足不同的需求,如固定 IP 以方便开发和管理。对于不同的虚拟机软件和操作系统,修改方法有所不同。以 VirtualBox + Vagrant + Linux 为例,可以通过修改 Vagrantfile 文件来实现。打开该文件,找到相关的网络配置部分,按照本机网络信息和需求修改 IP 地址等参数。修改完成后保存,并通过相应命令重启虚拟机使配置生效。

笔者本机VirtualBox的IP信息,192.168.56.1

 为了虚拟机和本机能进行通信,需要设置虚拟机IP与virsualbox的ip在同一网段,

可以看到本机的VirtualBox的ip网段为192.168.56.1,所以虚拟机的IP必须是192.168.56.2-192.168.56.255。

以下示例修改Vagrantfile文件中的参数:config.vm.network "private_network", ip: "192.168.56.13"

 保存修改需重启虚拟机方可生效,执行命令重启:

vagrant reload

验证网络配置是否成功

1、进入虚拟机查看虚拟机网络配置

打开虚拟机安装文件夹(Vagrantfile所在目录),在该文件夹下打开 cmd 窗口,执行 vagrant ssh 命令,即可登录到虚拟机。需要注意的是,登录虚拟机时默认用户为 vagrant 。

在虚拟机中执行命令(centos7为例,其他版本Linux命令可能有差异):ip addr 

可以看到虚拟机网络配置中IP与Vagrantfile文件中的参数:config.vm.network "private_network", ip: "192.168.56.13"相同,表示网络配置成功。

2、通过ping命令检测虚拟机与本机的连通性。

本机物理IP:

在虚拟机内部ping 192.168.1.55,显示网络正常

反过来从本机ping虚拟机IP:192.168.56.13,也显示网络正常。

 

至此,网络基本配置已经完成,可以正常使用vagrant ssh命令进行连接。 

使用exit命令可退出登录;

五、密码登录配置

截止步骤四(网络配置)能使用vagrant ssh正常连接,但是使用第三方SSH工具密码连接时会发现依然连接失败,要实现虚拟机的密码登录以便使用 XShell 等工具进行连接,您可以按照以下步骤进行操作:

(一)VirtualBox 虚拟机密码登录配置

1、打开 VirtualBox 虚拟机,以管理员身份登录 Linux 系统。

2、执行命令 sudo vi /etc/ssh/sshd_config 打开 SSH 配置文件。

3、找到 PasswordAuthentication 这一行,将其值从 no 修改为 yes ,以允许密码登录。

4、找到 PermitRootLogin 这一行,确保其值为 yes ,允许 root 用户登录。

5、按 Esc 键,输入 :wq 保存并退出编辑。

6、执行命令 sudo service sshd restart 重启 SSH 服务,使配置生效。

(二)SSH工具密码登陆(以XShell 为例)
  1. 打开 XShell 软件,点击“新建”按钮。
  1. 在“新建会话属性”窗口中,输入虚拟机的 IP 地址。
  1. 设置连接协议为 SSH ,端口一般为 22 (如果在 SSH 配置文件中修改了端口,则使用修改后的端口)。
  1. 输入用户名(一般为 root )和密码(您在虚拟机中设置的密码,默认密码为:vagrant)。
  1. 点击“确定”保存会话设置。
  1. 双击新建的会话即可连接到虚拟机。

通过以上步骤,您就可以成功配置虚拟机的密码登录,并使用 XShell 等工具进行连接,方便您对虚拟机进行操作和管理。

六、创建多台虚拟机

在不同的文件夹下面重复以上的操作步骤即可创建多台虚拟机并相互可访问。

七、Vagrant 常用的命令

1. `vagrant init` :初始化一个 Vagrant 项目,创建一个默认的 `Vagrantfile` 配置文件。

2. `vagrant up` :启动虚拟机。

3. `vagrant halt` :关闭虚拟机。

4. `vagrant suspend` :挂起虚拟机。

5. `vagrant resume` :恢复挂起的虚拟机。

6. `vagrant destroy` :销毁虚拟机,删除相关数据。

7. `vagrant status` :查看虚拟机的状态(运行、关闭等)。

8. `vagrant ssh` :通过 SSH 连接到正在运行的虚拟机。

9. `vagrant box list` :列出已安装的 Vagrant 盒子(虚拟机镜像)。

10. `vagrant box add` :添加新的 Vagrant 盒子。

11. `vagrant provision` :重新应用配置文件中的 provisioning 脚本。

12. `vagrant reload` :重新加载虚拟机配置并重启虚拟机。

13. `vagrant plugin list` :列出已安装的 Vagrant 插件。

14. `vagrant plugin install` :安装指定的 Vagrant 插件。

这些命令可以帮助您管理和操作 Vagrant 虚拟机。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

斯坦福UE4 C++课学习补充 14:UMG-优化血量条

文章目录 一、优化执行效率二、简单脉冲动画 一、优化执行效率 绑定事件需要每一帧检查绑定对象是否有变化,势必造成CPU资源的浪费,因此优化执行效率的思路是:UI组件不再自行每帧查询血量,而是让血量自己在发生变化的同时通知UI进…

Linux环境下(DeepinV20+)安装并配置jdk和maven

一、jdk下载 Oracle的JDK开始收费了,如非必要,请勿使用!!! jdk下载地址1(推荐)https://github.com/graalvm/graalvm-ce-builds/releases jdk下载地址2(可选):…

LLM 大语言模型显存消耗估计与计算

LLM 大语言模型显存消耗估计与计算 1. LLM 大语言模型开发流程 在大模型(如 LLaMA-7B、GPT-3 等)的开发、训练、微调、推理和部署过程中,各个阶段的流程都涉及多个复杂的步骤。以下是详细的流程描述,涵盖训练和微调的区别&#…

SpringCloud+Vue3多对多,多表联查

♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

学习日记:数据类型2

目录 1.转义字符 2.隐式类型转换 2.1 强制类型转换 2.2 不同类型间赋值 3.运算符 表达式 3.1 算术运算符 3.2 算术运算优先级 3.3 赋值运算 3.3.1 不同类型间混合赋值 3.4 逗号运算 4.生成随机数 5. 每日一练 1.转义字符 \n 表示换行 \t …

前端渲染模式

渲染的概念 在Web开发中,渲染(Rendering)是一个核心概念,指的是将应用程序的数据(data)与模板(template)结合,生成最终的HTML页面,这个页面随后会被浏览器解析…

RedHat9 | Ansible 角色

环境版本说明 RedHat9 [Red Hat Enterprise Linux release 9.0]Ansible [core 2.13.3]Python [3.9.10]jinja [3.1.2] 描述角色结构 Playbook可能比较冗长且负载,也可能存在大量的重复代码。而角色(roles)可以用于层次性结构化的组织playbo…

55. 跳跃游戏【 力扣(LeetCode) 】

一、题目描述 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 二、测试用…

在vue中优雅地异步引入(懒加载)腾讯地图API

背景 接到一个需求需要在网站首页显示使用腾讯地图展示公司所在地。一开始我直接全局引入了腾讯地图js,结果发现在用户打开登陆页面的时候首页比较缓慢,为了提高用户登陆的加载效率,需要优化为异步引入。 思路 根据官网的示例,…

SQL 注入漏洞详解 - Union 注入

1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,…

【前端 02】新浪新闻项目-初步使用CSS来排版

在今天的博文中,我们将围绕“新浪新闻”项目,深入探讨HTML和CSS在网页制作中的基础应用。通过具体实例,我们将学习如何设置图片、标题、超链接以及文本排版,同时了解CSS的引入方式和选择器优先级,以及视频和音频标签的…

分布式光伏并网AM5SE-IS防孤岛保护装置介绍——安科瑞 叶西平

产品简介 功能: AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。当发生孤岛现象时,可以快速切除并网点,使本站与电网侧快速脱离,保证整个电站和相关维护人员的生命安全。 应用…

Hello 算法:动画图解、一键运行的数据结构与算法教程

Hello 算法 《Hello 算法》是一份开源、免费的数据结构与算法入门教程,特别适合新手。全书采用动画图解,内容清晰易懂,学习曲线平滑,引导初学者探索数据结构与算法的知识地图。源代码可以一键运行,帮助读者通过练习提…

WEB攻防-通用漏洞-SQL 读写注入-MYSQLMSSQLPostgreSQL

什么是高权限注入 高权限注入指的是攻击者通过SQL注入漏洞,利用具有高级权限的数据库账户(如MYSQL的root用户、MSSQL的sa用户、PostgreSQL的dba用户)执行恶意SQL语句。这些高级权限账户能够访问和修改数据库中的所有数据,甚至执行…

springboot中使用knife4j访问接口文档的一系列问题

springboot中使用knife4j访问接口文档的一系列问题 1.个人介绍 🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的…

用Java手写jvm之实现查找class

写在前面 完成类加载器加载class的三阶段,加载,解析,初始化中的加载😀😀😀 源码 。 jvm想要运行class,是根据类全限定名称来从特定的位置基于类加载器来查找的,分别如下:…

解决R语言找不到系统库导致的报错

1、基本需知 1.1、系统库 系统库(System library)是一组预先编写和编译好的软件模块集合,用于支持操作系统的基本功能和提供一些常见的服务。这些库通常由操作系统或第三方开发者提供,并且在系统安装过程中被预装或者用户可以额…

崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB

前言 首届YashanDB「迁移体验官」开放后,陆续收到「体验官」们的投稿,小崖在此把优秀的投稿文章分享给大家~今天分享的用户文章是《崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB》(作者:小草),满满…

【vue前端项目实战案例】之Vue仿饿了么App

本文将介绍一款仿“饿了么”商家页面的App。该案例是基于 Vue2.0 Vue Router webpack ES6 等技术栈实现的一款外卖类App,适合初学者进行学习。 项目源码下载链接在文章末尾 1 项目概述 该项目是一款仿“饿了么”商家页面的外卖类App,主要有以下功能…

51单片机嵌入式开发:17、STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息

51单片机嵌入式开发 STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息 51单片机嵌入式开发STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息1 概述2 硬件电路2.1 遥控器2.2 红外接收器电路2.3 STC89C52单片机电路2.4 数码管…