虚拟运行环境管理工具Vagrant详细使用教程

前言

最近在学习谷粒商城,谷粒商城在构建虚拟机环境就是使用的vagrant工具来进行快速构建,之前并没有接触过,就进行完整梳理与实战了下,使用完之后感觉真的很香,极其推荐!

Vagrant是构建在虚拟化技术之上的虚拟运行环境管理工具。通过使用Vagrant我们可以快速去构建我们想要的虚拟环境,同样其搭配virtualbox来进行使用,通过构建vagrantfile我们可以来快速的进行创建、启动、挂起、重启虚拟机,以及其还附带ssh工具来进行连接!

所有博客文件目录索引:博客目录索引(持续更新)

一、下载安装Vargant

对于virtualbox的安装与配置可以看我之前写的一篇博客:VirtualBox安装与配置

Vargant下载地址:https://www.vagrantup.com/downloads

官方镜像下载:https://app.vagrantup.com/boxes/search

  • Centos镜像网址:http://cloud.centos.org/centos/
  • Ubuntu镜像下载网站:http://cloud-images.ubuntu.com/

image-20221103200736710

链接:https://pan.baidu.com/s/19Xk2S9UDWM3mzmkEUmkWOw 
提取码:rnyt 

双击来进行安装即可,安装完成之后需要你去重启,重启好了之后,我们打开cmd来测试一下vagrant是否已经配置好了环境变量:

vagrant

image-20221103202608950

二、自定义vagrant相关安装路径

2.1、自定义box安装存储位置

在安装好vagrant之后,默认的box已经其他存储路径是在c盘的用户目录下的 .vagrant.d 目录下:

image-20221103205018923

如何去自定义位置呢?

新建环境变量,自定义一个文件夹并将环境变量指向过去:

VAGRANT_HOME
D:\software\vagrantbox\VirtualBox.vagrant.d

image-20221103205203469

同时我们将原本C盘中的内容拷贝过去:

image-20221103205329642


2.2、自定义虚拟机安装目录

在使用vagrant去创建的虚拟机都会默认在C盘中去进行创建,这与我们在virtualbox里的全局设定有关:

image-20221103213609159

我们只需要对其默认虚拟电脑位置修改下即可!


三、配置详解

Vagrant系列(二)Vagrant的配置文件Vagrantfile详解

vagrant+virtualbox虚拟机创建全流程,问题处理以及过程讲解,初始安装不放C盘,初始化硬盘空间设置,ssh连接超时,基础镜像下载等等

内存与cpu核数

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # 对应指定的镜像
  config.vm.box = "centos7"
  # 配置静态网址(与当前电脑的ip地址要对应)
  config.vm.network "private_network", ip: "169.254.5.168" 
  config.vm.provider "virtualbox" do |vb|
      # 内存8G
      vb.memory = "8192"
      # CPU4核
      vb.cpus = 4
  end
end

四、命令大全整理

# 查询当前管理的盒子
vagrant box list

# 添加指定的vagrant的box镜像到vagrant中
# 语法:vagrant box add box的文件路径及文件名 --name centos8,后面-name表示指定名字

# 根据名字删除指定的box
# 语法:vagrant box remove NAME


# ---虚拟机相关命令---
# 新建虚拟机
# 语法:vagrant init [boxname]  # 加上boxname 表示使用指定box名创建虚拟机

# 启动虚拟机命令
vagrant up

# 查看虚拟机状态
vagrant status

# 停止虚拟机
vagrant halt

# 暂停虚拟机
vagrant suspend

# 重启虚拟机
vagrant reload

# 恢复虚拟机 | 不管虚机是关闭还是暂停状态,甚至是 error 状态,都可以执行 vagrant up 来让虚机恢复运行
vagrant resume

# 删除虚拟机
vagrant destroy

# ---辅助命令---
# 使用vagrant自带的ssh工具去连接当前目录下的虚拟机
vagrant ssh

五、实战

5.1、安装一个centos7虚拟机

5.1.1、提前准备镜像centos7

若是想要直接从远程拉取命令安装的可直接跳过这步直接执行:Vagrant init centos/7

由于从远程拉取默认会从对应的vagrant镜像网站去拉取指定版本的centos,时间肯定会很长,我们采取另一种方式,先把对应centos7的box文件下载下来,安装到vargrant中,接着去进行初始化,一系列操作如下:

①下载centos7的box文件

官网的centos7的镜像:centos7镜像,我们直接去国内的中科大镜像源:centos7-vagrant

image-20221103204237998

我们可以通过命令来确定下载源地址:

vagrant init centos/7
vagrant up

image-20221107161333637

获取到源下载地址:https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box

直接下载的话会很慢,我这边下好了直接取就可:

链接:https://pan.baidu.com/s/1ieASF3r35X1wWxpfsw_x_g 
提取码:dl6z 

②将centos7中的box文件添加到vagrant中,并取名字为centos7

# 指定路径的box文件设置别名为centos7
vagrant box add D:\software\vagrantbox\boxes\Centos7.box --name centos7

image-20221107165019061

命令效果:

image-20221107165116740


4.1.2、初始化centos7

当前初始化时基于本地的centos7的box文件,我们在上节将其名为centos7了。

初始化命令,此时我们将创建了vagrantfile文件:

# centos7是之前盒子的别名
vagrant init centos7

image-20221103211949860

在当前目录中就会有一个Vagrantfile文件。


4.1.3、启动与连接centos7(vagrant自带ssh与ssh图形化连接)

启动centos7系统

初始化文件好了之后,我们就来启动这个vagrantfile,执行启动命令:

vagrant up

image-20221103212218741

此时已经成功启动我们的centos7系统!

默认的用户名与密码为:

vagrant
vagrant

注意:请在启动命令的文件目录中不要出现中文、空格符的情况!

配置源内容如下:

# 备份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成缓存
yum makecache

连接centos7

方式一:使用vagrant的ssh工具来进行连接(无需输入用户名与密码)

vagrant ssh

image-20221103212456149

方式二:虚拟机显示窗口或者使用ssh连接GUI工具

虚拟机显示窗口运行:

image-20221103212604089

图形化工具连接:

①私钥登录

vagrant默认不允许使用用户名与密码来进行登录,而是使用私钥登录:

image-20221103215254414

私钥在当前vagrantfile同路径下的.vagrant目录下:

C:\Users\93997\Desktop\guli-mall\vagrantfile\centos7\.vagrant\machines\default\virtualbox

image-20221103215346014

ok,此时登录成功!

image-20221103215424436

②用户名与密码登录

su root   # 默认root密码为vagrant

我们需要修改配置文件:

vi /etc/ssh/sshd_config

修改配置信息如下:

PermitRootLogin yes        # 允许直接通过root账号登录
PasswordAuthentication yes # 可以通过密码登录

重启sshd令其生效:

sudo systemctl restart sshd

接着我们就可以使用用户名与密码来进行登录了!


额外:自定义ip地址连接

默认的话就是通过127.0.0.1也就是本地地址及通过端口转发来进行访问的虚拟机,这样的话对于开发不太方便,我们可以去修改固定的IP地址,操作如下:

①首先查看当前你电脑的virtualbox的ip地址

image-20221103212936705

②根据子网掩码我们自定义一个ip地址:169.254.5.168

打开刚刚的vagrantfile,来进行编辑:

image-20221103213222214

接着我们来尝试虚拟机与主机互ping一下:

image-20221103214357663

最后尝试使用下SSH图形化工具finalshell连接一下。

参考资料

[1]. Vagrant 入门使用教程

[2]. 使用Vagrant在命令行快速创建虚拟机

[3]. 解决使用第三方软件连接vagrant虚拟机连接问题

[4]. 修改vagrant,virtualbox数据目录

[5]. Vagrant初始化一个centos7虚拟机、配置Vagrant可以让客户端工具通过root账号登录

[6]. vagrant安装的centos7开启root远程连接登入

  • 28
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长路 ㅤ   

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值