ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Vagrant快速创建CentOS虚拟机

2022-05-19 17:04:14  阅读:183  来源: 互联网

标签:box CentOS Vagrant 虚拟机 配置 vagrant VirtualBox


目录

前言

Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 VagrantVirtualBox

  • VirtualBox(VirtualBox-6.1.34-150636-Win.exe)
    • 1.关闭自动更细
    • 2.修改默认虚拟位置
  • Vagrant(vagrant_2.2.19_x86_64.msi)
    • 安装后需重启

1、检索要安装的虚拟系统(此处以centos7为例)

在https://app.vagrantup.com/boxes/search下搜索centos:

QQ截图20190328162307.png

2、初始化虚拟系统环境

然后在win10任意盘符下创建vagrant_vm目录(注意目录最好不要有中文和空格),然后在该目录下使用cmd执行vagrant init centos/7命令:

QQ截图20190328201613.png

在目标目录中生成Vagrantfile.vagrant

3、开始安装虚拟系统

然后执行vagrant up启动(这时候最好也打开VirtualBox):

QQ截图20190328202035.png

构建完毕,这时候VirtualBox的列表里会出现一台正在运行的虚拟机:

QQ截图20190328202353.png

这就是刚刚通过Vagrant构建的CentOS7虚拟机。

3.1 虚拟系统下载慢

如果执行vagrant up后虚拟机文件下载非常的慢,可以使用下面这种方式来构建:

在上面的日志中可以找到这么一行:

Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1902.01/providers/virtualbox.box

后面这个URL就是下载地址,黏贴下载工具下载即可。然后将下载好后的xxx.box文件复制到vagrant_vm目录下,并且重命名为centos7.box(删除centos7.box之外的文件和目录,只保留centos7.box一个文件)。

接着运行vagrant box add --name 'centos/7' centos7.box命令:

QQ截图20190328203659.png

添加成功后执行vagrant init centos/7初始化:

QQ截图20190328203846.png

初始化成功后执行vagrant up启动:

QQ截图20190328204151.png

构建成功,效果和一开始在线下载构建是一样的。

3.2 vagrant up启动时可能出现的报错

vagrant up出现:An error occurred while downloading the remote file. The errormessage

img

解决方法:

打开刚创建的存放vagrant的文件夹,用记事本打开Vagrantfile文件,将config.vm.box = "base"
中的base改成vagrant box add --name 'centos/7' centos7.box命令中 --name 指定的名称。这个问题就这样解决了。然后执行

vagrant init centos/7

vagrant up

在启动的时候,提示coun't open file的提示信息,一般都是virtualbox的版本和vagrant对应不上的问题

参考:https://blog.csdn.net/gongzi_9/article/details/123058281

4、常用命令

vagrant init centos/7  								# 虚拟系统初始化(虚拟环境起名)
vagrant box add --name 'centos/7' centos7.box		# 添加离线下载的虚拟系统文件并起名为centos/7
vagrant up											# 启动虚拟机
vagrant status										# 查看虚拟系统状态
vagrant halt										# 关闭虚拟机
vagrant suspend										# 挂起虚拟机
vagrant resume										# 恢复挂起状态的虚拟机
vagrant ssh											# 连接正在运行的虚拟机
vagrant reload										# 重启虚拟机
vagrant distroy										# 销毁虚拟机

修改vagrant系统的root用户密码:

  1. 先使用vagrant 用户登录vagrant ssh

  2. $sudo passwd root按照提示输入两次新的密码,并加以确认。

5、目录共享

Vagrant的根目录(就是一开始创建的vagrant_vm)和虚拟机里的/vagrant目录是共享的。在vagrant_vm目录下新建一个hello.txt文件,内容为hello:

QQ截图20190328212914.png

然后重启虚拟机,并连接虚拟机,查看虚拟机/vagrant目录下有什么内容:

QQ截图20190328214455.png

说明同步成功。

也可以自定义共享路劲,编辑vagrant_vm文件夹下的Vagrantfile文件:

QQ截图20190328222933.png

在这行下面添加如下配置:

config.vm.synced_folder "./data", "/share", create:true, owner: "root", group: "root"

这个配置的意思是将当前路径下的data文件夹和虚拟机的/share目录共享,拥有者为root,群组为root,如果路径不存在则创建。

修改了Vagrantfile文件需要执行 vagrant reload重启。重启后我们在data文件夹下新建一个world.txt文件,然后连接虚拟机看看是否共享成功:

QQ截图20190328231719.png

共享成功!

在这途中,遇到了如下问题:

Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem “vboxsf” is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was
...
...
The error output from the command was: mount: unknown filesystem type ‘vboxsf’

安装下面这个插件可解决问题:

vagrant plugin install vagrant-vbguest

6、网络配置

查看虚拟机的ip地址

  • ip addr
  • ifconfig -a

6.1 虚拟机私有网络

在Vagrantfile里打开下面这行配置:ip可指定192.168.xx.xx

例如192.168.8.8

QQ截图20190329203440.png

然后使用命令vagrant reload重启虚拟机,重启后我们使用ping命令看是否可以在windows上访问到这个ip:

QQ截图20190329203610.png

访问成功,连接虚拟机,使用ifconfig查看其IP:

QQ截图20190329203731.png

正是我们刚刚配置的那个IP:192.168.8.8

6.2 虚拟机公有网络

编辑Vagrantfile,将刚刚开启的私有网络配置注释,然后开启下面这行配置:

QQ截图20190329204536.png

然后重启虚拟机,重启过程中会让根据当前网络环境选择:

QQ截图20190329204658.png

因为我电脑连接的是家里wifi所以选择第四个选项,重启好后连接虚拟机,查看其IP:

QQ截图20190329204819.png

新开一个cmd窗口,ping 这个地址看是否能通:

QQ截图20190329204921.png

公有网络和私有网络的区别是,公有网络是无线路由器自动分配的IP地址,并且在同一个wifi网络下的其他设备也是可以访问这个IP地址的。

以下需要安装appach的服务器才能看到

比如我们在windows浏览器里输入http://192.168.28.83/:

QQ截图20190329205957.png

然后让手机连接和电脑相同的wifi网络,并且访问http://192.168.28.83/:

img

结果说明公有网络配置成功。

7、多主机配置

使用Vagrant可以轻松地创建多台虚拟主机。下面我们开始通过Vagrant来创建两台新的虚拟主机“prod”和“dev”。

在vagrant_vm目录下新建一个目录,名称为multi,然后通过现有的box来初始化一个Vagrantfile配置:

QQ截图20190329213710.png

接着编辑multi目录下的Vagrantfile文件,新增下面两项配置:

QQ截图20190329213847.png

运行vagrant status

QQ截图20190329213928.png

可以看到多了两台状态为not created的虚拟机,名称分别为“prod”和“dev”。

我们可以使用vagrant up来启动两台主机,也可以通过vagrant up prod来单独启动“prod”这台虚拟主机。

启动后(第一次启动耗时可能比较长),使用vagrant status来查看它们的状态:

QQ截图20190329214836.png

通过vagrant ssh 主机名就可以连接上它们了。

网络配置

接下来开始配置网络,让它们之间可以通讯。

我们按照上面介绍网络配置的方式来为这两台虚拟主机配置私有网络:

QQ截图20190329215535.png

值得注意的是,在配置私有网络的时候,IP网段不能和Windows主机相同。

配置好后重启这两台虚拟机,然后分别连接这两台虚拟机,看是否能够ping通:

QQ截图20190329220045.png

QQ截图20190329220109.png

配置成功。

自定义主机名

编辑Vagrantfile,添加如下配置:

QQ截图20190329220648.png

重启后,连接虚拟机,可以看到hostname已经修改为我们设置的名称了:

QQ截图20190329220747.png

QQ截图20190329220810.png

多主机的共享目录

默认的这两台虚拟主机的/vagrant和当前目录multi/是共享的。我们也可以分别为它们设置不同的共享目录。

编辑Vagrantfile,添加如下配置:

QQ截图20190329221152.png

然后重启这两台虚拟主机就好了。

更多Vagrant的配置可以查看官方文档:https://www.vagrantup.com/docs/

8、VirtualBox 管理虚拟机

VirtualBox客户端与命令行vagrant命令都可以管理虚拟机

VirtualBox提供可视化的虚拟机配置界面

虚拟机的网络配置修改以后,常用vagrant reload重启虚拟机

9、参考文章

https://mrbird.cc/Create-Virtual-Machine-By-Vagrant.html

标签:box,CentOS,Vagrant,虚拟机,配置,vagrant,VirtualBox
来源: https://www.cnblogs.com/hhddd-1024/p/16289196.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有