Vagrant配合VirtualBox搭建虚拟机

Vagrant配合VirtualBox搭建虚拟机Vagrant 搭建 virtualbox 虚拟机 打包虚拟机 多机器部署 vagrant 虚拟机

前言

    目前我用虚拟机主要作用是模拟linux系统下当服务器使用,直接用vmware虚拟机或者VirtualBox虚拟机进行搭建相关开发环境耗时,并且很多步骤冗余,至此想要探寻简化配置步骤,并且可以一次搭建多次复用的方式,我们从使用Vagrant开始,然后我们还有去探索克隆虚拟机,搭建完基础环境之后移植到其他机器也能快速使用的方法。

一、软件下载及安装

我这里是win环境下安装相关软件。博客那没多,要搞就搞点不一样的,都安装最新版本。

1.下载

在这里插入图片描述

VirtualBox下载
在这里插入图片描述
我就想要下载旧一些的版本,他可能稳定或者相关资料更多一些,这里也提供旧版本下载提示。
在这里插入图片描述
直达链接

2.安装

①安装VirtualBox
在选择安装位置时,你是否也把目录切换到了其他磁盘而不是默认的系统盘
在这里插入图片描述
解决方式有两种
第一种:不喜欢折腾的同学,直接换回系统盘安装。
第二种:分两种情况
第一种情况:选择其他盘后,建一个根目录,把它安装到该目录下。需要做一些准备。
例如我把它安装到了某个目录下:
在这里插入图片描述
需要创建完该文件夹后执行如下命令,以管理员身份运行cmd程序,执行如下几行代码。

icacls A:\VirtualBox /reset /t /c icacls A:\VirtualBox /inheritance:d /t /c icacls A:\VirtualBox /grant *S-1-5-32-545:(OI)(CI)(RX) icacls A:\VirtualBox /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA) icacls A:\VirtualBox /grant *S-1-5-11:(OI)(CI)(RX) icacls A:\VirtualBox /deny *S-1-5-11:(DE,WD,AD,WEA,WA) 

②安装Vagrant
这个就没啥好选的了,最新版没找到选择安装目录的位置。在最后一步时,你选择了yes会立刻重启你的电脑。其他情况暂时未遇到问题。
在这里插入图片描述

扩展:


icacls工具:管理文件和目录的访问控制列表,这些操作类似于linux对目录用户组进行权限分配和设置。资料来源网络,如果错误还请指正。

1- icacls A:\VirtualBox /reset /t /c 

这个命令将重置A:\VirtualBox目录及其所有子目录和文件的权限为默认设置。/t参数表示操作递归应用于所有子目录和文件,/c参数则表示如果遇到错误,命令会继续处理其他项。

2- icacls A:\VirtualBox /inheritance:d /t /c 

此命令禁用了A:\VirtualBox目录及其子目录的继承权限。inheritance:d表示删除现有的继承权限条目,/t/c与上一个命令相同

3- icacls A:\VirtualBox /grant *S-1-5-32-545:(OI)(CI)(RX) 

这个命令向A:\VirtualBox目录及其子目录授予对用户组*S-1-5-32-545(通常是本地用户组)的读取权限。(OI)表示对象继承,(CI)表示容器继承,(RX)是读取权限的缩写。

4- icacls A:\VirtualBox /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA) 

此命令拒绝A:\VirtualBox目录及其子目录中*S-1-5-32-545用户组的多种权限:删除、写入数据、添加子目录、写入扩展属性、写入属性等。

5- icacls A:\VirtualBox /grant *S-1-5-11:(OI)(CI)(RX) 

类似于第三个命令,但这次是向*S-1-5-11(通常是管理员组)授予读取权限。

6- icacls A:\VirtualBox /deny *S-1-5-11:(DE,WD,AD,WEA,WA) 

同第四个命令,但这次是对*S-1-5-11用户组拒绝多种权限。


如果你的电脑没有开启虚拟化,需要进入bois进行开始虚拟化设置!!!每个人电脑多少有一些差异,如果没有找到请按照自己电脑型号去网上查一下在哪块开启

在这里插入图片描述
在这里插入图片描述


二、创建一个虚拟机

1.Vagrant官方镜像仓库

仓库地址
我们使用vagrant 进行虚拟机的创建,使用他对应的官方镜像进行linux系统的创建。
相关命令在他的文档中有体现
在这里插入图片描述
初始化一个centos7虚拟机,启动虚拟机。
cmd执行如下命令

vagrant init centos/7 vagrant up 

在这里插入图片描述
启动虚拟机

vagrant up 

在这里插入图片描述
在这里插入图片描述


三、使用远程工具连接虚拟机

1.修改相关配置文件

使用远程工具连接虚拟机。

这里的网络和之前博客不太一样,注意甄别。找到对应的虚拟机网卡信息

ipconfig 

从这里开始看就行
修改vagrant配置文件,把对应的ip设置为静态ip,在192.168.56.xx网段下即可
在这里插入图片描述
我的在第35行
在这里插入图片描述
首先,使用win的cmd进行远程ssh连接,修改一下linux中的一些ssh连接设置。

vagrant ssh 

切换root用户,密码为:vagrant
在这里插入图片描述
·改参数值,找到 PasswordAuthentication 改为yes

vi /etc/ssh/sshd_config 

刚进入文件时,使用vi的搜索功能。

/Passw 

此时定位到对应的内容后,按i键进行编辑。
在这里插入图片描述

:wq 

重启ssh服务

systemctl restart sshd 

此时使用你自己的ssh工具即可进行访问
ip:192.168.56.10
username:root
password:vagrant

四、虚拟机克隆及使用

1.通用配置

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 

创建一个新的repo文件

sudo vi /etc/yum.repos.d/alimirror.repo 

编辑新的源

[alimirror] name=alimirror baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=0 enabled=1 

清理缓存并更新数据

yum clean all yum makecache fast 

更新yum

yum update 

安装vim

yum install -y vim-enhanced 

2.简单搭建一个java环境

下载一个jdk包
此处省略相关配置环境变量等,主要为了验证克隆之后是否能生效和使用。
在这里插入图片描述

3.克隆虚拟机

为虚拟机配置环境变量,这块不需要非得抄我的知道怎么配环境变量的同学自行配置即可
1.在这里插入图片描述

1.重命名虚拟机(可选)

为什么要对虚拟机重命名?
因为这样克隆虚拟机时,可以指定克隆那个虚拟机,当然你如果不想进行重命名,也有支持打包当前运行中的虚拟机方式。但是如果你同时需要启动多个虚拟机时,这块随意,不影响功能使用,这块也稍微麻烦一些,不想麻烦的可以跳过,个人感觉用处不大。

查询当前虚拟机名称

vagrant status 

在这里插入图片描述
就叫default

重命名虚拟机名称,为第一步使用vagrant 打包做准备。
先关闭当前虚拟机。

1.修改Vagrantfile配置文件,增加虚拟机名称配置,就挨着config.vm.box配置再上放增加一行即可,结束时需要增加end。

 config.vm.define "vm1" do |node| xxxx config.vm.box = "centos/7" end 

示例:

Vagrant.configure("2") do |config| config.vm.define "vm1" do |node| node.vm.box = "ubuntu/focal64" # ... 其他配置 ... end end 

我命名为vm1

config.vm.define "vm1" do |node| 

在这里插入图片描述
2.重命名还未结束,还需要根据uuid更新底层逻辑

vboxmanage list vms 

这个命令如果提示不是内外部命令,那就是你没有成功配置box的环境变量。
在这里插入图片描述
3.更新虚拟机名称

vboxmanage modifyvm { 
   UUID} --name "虚拟机名称" 

我的命令

vboxmanage modifyvm { 
   aa-cd0c-40a6-978a-380b23c8b873} --name "vm1" 

在这里插入图片描述
再次查询当前虚拟机名称

vagrant status 

在这里插入图片描述
至此重命名完成。

2.打包指定名称的虚拟机

方式1:cmd命令方式(已经验证成功,可以正常使用)
使用vagrant命令打包当前的虚拟机
①查询所有虚拟机列表

vboxmanage list vms 

在这里插入图片描述
打包指定名称的虚拟机
你想把打包的文件放到哪里,此时你就使用cmd进行切换目录
示例

cd A:\DATA\copy 

此时执行打包命令后会把打包的文件放在该目录下
③进行打包
示例打包名为vm1虚拟机,输出文件为vagrant01.box

vagrant package --base vm1 --output copy.box 

这一步非常的耗时!!!,并且控制台无进度条,此时需要耐心等待。我的文件8个多G,从任务管理器能看出磁盘io每秒达到50mb左右的速度,也可能我电脑拉胯些比较慢。
两种方式判断是否完成
第一种:控制台出现不在阻塞之后Compressing即可
在这里插入图片描述

第二种:保存目录的文件不再是0kb大小
在这里插入图片描述
④将打包好的box文件add到vagrant
copy 可以理解为虚拟机的名字copy ,copy .box是我们打包的文件名称。
注意:需要切换到copy.box目录再执行下方命令

vagrant box add copy copy.box 

⑤初始化一个新的vagrant环境

vagrant init copy 
Vagrant.configure("2") do |config| config.vm.define "copy" config.vm.box = "copy" config.vm.network "private_network", ip: "192.168.56.20" config.ssh.username = "vagrant" config.ssh.password = "vagrant" end 

全量替换成我的,如果你不是交copy则替换你对应的虚拟机名称,ssh这块是因为解决某个异常添加的,具体异常请在下方查阅。
⑦更改默认的虚拟机位置
在这里插入图片描述
选择其他,找到你init的目录即可
在这里插入图片描述
启动这个虚拟机

vagrant up copy 

此时启动后virtual box页面会有一个虚拟机,但是名称不是我们起的copy,而是一个很长一串的名称,加上copy内容,这块还在研究,不影响使用。

vagrant ssh 

username和password都为

vagrant 
su root 
vagrant 

先查询一下ip地址是否还是之前打包的ip地址

ip addr show 

我这块已经手动改过了,你的话应该还是192.168.56.10,此时需要在服务器端更改一下。
在这里插入图片描述
更改ip地址
切换到该目录下,查询自己需要更改的文件,我的文件是eth1文件,你的可能不是

cd /etc/sysconfig/network-scripts/ 

在这里插入图片描述

vi ifcfg-eth1 

在这里插入图片描述
修改完保存重启网路服务一下

systemctl restart network 

验证一下是否生效

ip addr show eth1 

至此以命令方式的克隆虚拟机完成,之前搭建的java环境也正常使用。

方式2:virtual box方式打包(未验证成功,正在解决问题)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制成功之后,还是需要把对应的文件夹放到系统盘的默认路径下,否则检测不到(这块需要再研究一下,目前只能是放在原来虚拟机的文件夹下)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开我们复制的这个虚拟机文件
在这里插入图片描述
在这里插入图片描述
正在解决ing

五、异常情况处理

1.up启动报错

The machine with the name ‘copy’ was not found configured for this Vagrant environment.

config.vm.define "copy" 

2.身份验证失败

copy:Warning: Authentication failure. Retrying…

直接使用明文username和password,目前还没有进行更加深入的研究,只用这个方式先解决,如果大家有其他优雅的方式欢迎一起交流讨论。

config.ssh.username = "vagrant" config.ssh.password = "vagrant" 
今天的文章 Vagrant配合VirtualBox搭建虚拟机分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-02 09:17
下一篇 2025-01-02 09:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/99795.html