轻松搭建 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 虚拟机。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5款常用的漏洞扫描工具,网安人员不能错过!

漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测的行为。 在漏洞扫描过程中,我们经常会借助一些漏扫工具,市面上漏扫工具众多,其中有一…

数学建模·Topsis优劣解距离法

Topsis优劣解 一种新的评价方法,特点就是利用原有数据,客观性强。相较于模糊评价和层次评价 更加客观,充分利用原有数据,精确反映方案差距基本原理 离最优解最近,离最劣解越远具体步骤 正向化 代码与原理与熵权法…

Docker 使用基础(3)—容器

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️💟──────── 4:20 🔄 ◀️ ⏸ …

LLM基础模型系列:Fine-Tuning总览

由于对大型语言模型,人工智能从业者经常被问到这样的问题:如何训练自己的数据?回答这个问题远非易事。生成式人工智能的最新进展是由具有许多参数的大规模模型驱动的,而训练这样的模型LLM需要昂贵的硬件(即许多具有大量…

万字长文!流行 AI 视频生成大模型介绍 浅体验

目录 国外 AI 视频生成大模型Sora——值得期待的引领者官方描述拥有强大的能力一经发布,立即爆火不同业内人士的评价周鸿祎的评价陈楸帆的评价 值得期待的引领者 Dream Machine——宣传虽好,但仍需努力新兴的 AI 视频生成大模型媒体强烈的追捧实测体验&a…

看番工具 -- oneAnime v1.2.5绿色版

软件简介 OneAnime是一款专为动漫爱好者设计的应用程序,它提供了一个庞大的动漫资源库,用户可以在这里找到各种类型的动漫,包括热门的、经典的、新番的等等。OneAnime的界面设计简洁明了,操作方便,用户可以轻松地搜索…

企业微信与大量外部成员的即时消息沟通和文档协作解决方案

背景 公司使用企业微信,现在有部门需要招聘大量外包成员,但是不希望外包成员进入公司企微的组织架构,要实现公司与外包成员的即时消息沟通和管理,以及文档共享协作。 痛点 虽然企微可以将外包成员的微信加为外部联系人&#xf…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十八章 Linux编写第一个自己的命令

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

MySQL字符串相关数据处理函数

目录 1. 转大小写 2. 截取字符串 sunstr 3. 获取字符长度 4. 字符串拼接 concat 5. 去掉空白 trim 1. 转大小写 转大写:upper() 转小写:lower() 虽然MySQL不严格区分大小写,但是我们还是需要掌握这种大小写的操作以方便学习其他…

MySQL 数据库基础概念

一、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(五)仿钉钉流程的json数据保存与显示

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、需要做一个界面保存与显示仿钉钉的流程,先建一个表,用online建 2、通过上面生成代码,放入到相应的前后端工程里 3、修改前端仿钉钉流程的设计功能&a…

IntelliJ IDEA自定义菜单(Menus)、任务栏(toolbars)详细教程

一、自定义菜单 1、打开Settings,找到Menus and Toolbars 2、点击右边的Main Menu,点击号,选择Add Action 3、弹出Add Action弹窗,搜索或者选择你要添加的指令 二、自定义工具栏 1、右键IDEA上方的工具栏空白位置,选…

Python学习笔记35:进阶篇(二十四)pygame的使用之音频文件播放

前言 基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。 我们的下一步目标是完成python crash course中的外星人入侵项目,这是一个2D游戏项目。在这之前&#xff…

Linux Ubuntu MySQL环境安装

1. 更新软件源 首先,确保你的Ubuntu系统已经更新了软件源列表,以便能够下载到最新的软件包。打开终端并输入以下命令: sudo apt update 2. 安装MySQL服务器 打开终端并输入以下命令来安装MySQL服务器 sudo apt install mysql-server 在…

vue3 + tsx 表格 Action 单独封装组件用法

前言 先上图看右侧列 action 的 UI 效果: 正常来说,如果一个表格的附带 action 操作,我们一般会放在最右侧的列里面实现,这个时候有些UI 框架支持在 SFC 模板里面定义额外的 solt,当然如果不支持,更通用的…

无头单向非循环链表实现 and leetcode刷题

无头单向非循环链表实现 1. 单链表的模拟实现IList.java接口:MySingleList.java文件: 2. leetcode刷题2.1 获取链表的中间节点2.2 删除链表中所有值为value的元素2.3 单链表的逆置2.4 获取链表倒数第k个节点2.5 给定 x, 把一个链表整理成前半部分小于 x,…

【C++】C++书店管理系统(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

如何在 Python 中创建一个类似于 MS 计算器的 GUI 计算器

问题背景 假设我们需要创建一个类似于微软计算器的 GUI 计算器。这个计算器应该具有以下功能: 能够显示第一个输入的数字。当按下运算符时,输入框仍显示第一个数字。当按下第二个数字时,第一个数字被替换。 解决方案 为了解决这个问题&am…

mysql高可用解决方案:MHA原理及实现

MHA:Master High Availability。对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要…

STL(一)

书写形式:string (const string& str, size_t pos, size_t len npos); 举例: int main(){ string url("https://mp.csdn.net/mp_blog/creation/editor?spm1000.2115.3001.4503") string sub1(url,0,5);//从下标为0开始向后5个字符&…