首页 > 系统相关 >使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

时间:2023-08-05 23:56:03浏览次数:51  
标签:box Vagrant 虚拟机 vagrant CentOS7 VirtualBox

一、准备工作

1.1 软件下载

  1. VirtualBox:Downloads – Oracle VM VirtualBox

    image-20230805132135907

  2. Vagrant:Install | Vagrant | HashiCorp Developer

    image-20230805132255859

1.2 软件安装

  1. 安装 VirtualBox-7.0.10-158379-Win.exe
  2. 安装 vagrant_2.3.7_windows_amd64.msi

Notes:

  1. 安装目录记得修改下,默认安装在 C 盘。
  2. Vagrant 是没有图形界面的,所以安装完成后也没有桌面快捷方式。

Vagrant 的安装程序会自动把安装路径加入到 PATH 环境变量,所以,这时候可以通过命令行执行 vagrant version 检查是否安装成功:

image-20230805134012130

1.3 VirtualBox 设置

VirtualBox 默认将虚拟机安装在 C 盘,我们最好手动修改一下:

  1. 打开 VirtualBox

  2. 依次点击「管理->全局设定->常规」

  3. 修改虚拟机安装位置

    image-20230805154924391

1.4 下载 CentOS7 虚拟镜像

使用 Vagrant 创建虚拟机时,需要指定一个镜像文件,也就是 .box 文件。开始这个 .box 文件并不存在,所以 Vagrant 会先从网上下载,然后缓存在本地目录中,但是这里默认下载往往会比较慢,所以我们最好是提前下载好:

1.5 打包下载

链接:https://pan.baidu.com/s/1sy6-bsfhYsSPoGoVw3RmTw?pwd=3vkr
提取码:3vkr

二、安装 CentOS7

2.1 新建虚拟机

我们在创建虚拟机的时候,会生产一些文件,所以我们最好为每个虚拟机都创建一个独立的文件夹,如我为其创建的文件夹为 D:\VMWare\Vagrant\CentOS7

2.1.1 添加 box

  1. 在 CentOS7 目录下打开 Windows PowerShell,打开方式:Shift + 鼠标右键 -> 在此处打开 Powershell 窗口

    image-20230805134936858

  2. 使用 vagrant box add 指令将 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box 添加到 vagrant 中:

    vagrant box add D:\VMWare\Vagrant\CentOS7\image\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box --name CentOS7
    
    • add 后的路径替换为你实际镜像的路径
    • --name:为这个 box 指定一个名字
  3. 使用 vagrant box list 验证是否成功:

    image-20230805141502408

Notes:我们可以通过指令 vagrant box remove [boxname] 删除添加到 vagrant 中的 box,如 vagrant box remove CentOS7

2.1.2 新建虚拟机

  1. 使用 vagrant init [boxname] 指令初始化虚拟机,如 vagrant init CentOS7

    image-20230805140305145

    • 创建成功后,会在当前文件夹多一个「Vagrantfile」的文件。
  2. 使用 vagrant up 指令创建并启动虚拟机,并可以通过 vagrant status 查看虚拟机启动状态:

    image-20230805141818322

    • running:表明我们的虚拟机启动成功了

2.2 登录虚拟机

2.2.1 使用 vagrant 登录

使用指令 vagrant ssh 登录虚拟机,并可通过使用 $ sudo -i 切换为 root 用户:

image-20230805142200538

2.2.2 使用 SecureCRT 免密登录

在使用 vagrant up 指令后,会在 CentOS7 目录下自动生成一个 .vagrant 目录,在该目录下有个 private_key 文件:D:\VMWare\Vagrant\CentOS7.vagrant\machines\default\virtualbox\private_key。

使用 vagrant 启动 CentOS7 时,有默认的端口,一般是 2222,IP 是 127.0.0.1。有了 IP 和 Port 后,接下来就可以使用 SecureCRT 登录虚拟机了,具体方法如下:

  1. 打开 SecureCRT 新建连接,输入 IP、Port 和 Username 后,不要着急点 Connect:

    image-20230805143649889

  2. 依次点击「PublicKey->Properties...」,设置 Private_key:

    image-20230805143615169

  3. 最后点击 Connect 即可成功登录:

    image-20230805143751519

2.2.2 使用 SecureCRT 密码登录

要想使用密码登录,需要修改配置文件:

[vagrant@10 ~]$ sudo cat -n /etc/ssh/sshd_config | grep PasswordAuthentication
    63  #PasswordAuthentication yes
    65  PasswordAuthentication no
    88  # PasswordAuthentication.  Depending on your PAM configuration,
    92  # PAM authentication, then enable this but set PasswordAuthentication
  • 查找 PasswordAuthentication 的位置

修改第 65 行的 PasswordAuthentication noPasswordAuthentication yes,具体操作方式如下:

  1. 编辑 sshd_config:sudo vi /etc/ssh/sshd_config

    1. :set nu 显示行号
    2. :65 跳转到第 65 行
    3. 修改 PasswordAuthentication noPasswordAuthentication yes
      image-20230805150924720
    4. :wq 保存后退出
  2. 使用 vagrant reload 重启虚拟机:

    image-20230805152035427

  3. 使用密码登录:
    image-20230805151947871

    • 默认登录密码为:vagrant

2.3 使用私有网络登录

2.3.1 关闭虚拟机

修改前,先关闭虚拟机:

vagrant halt	# PowerShell 下执行 

如下图所示:

image-20230805153128035

2.3.2 获取 VirtualBox 的 IP

查找方式如下图所示:

image-20230805152705873

2.3.3 修改 Vagrantfile

编辑虚拟机目录下的 Vagrantfile 文件:

image-20230805152317957

  • 取消第 35 行的注释,并将 ip 修改为 192.168.56.56(和 VirtualBox 同网段即可)

image-20230805153412928

2.3.4 使用私有 IP 登录

启动虚拟机(vagrant up),并在 SecureCRT 中使用 192.168.56.56 / 22 登录:

image-20230805153741524

三、设置共享文件夹

3.1 VBoxGuestAdditions.iso

3.1.1 获取文件

VirtualBox 提供了一个增强工具的镜像,默认安装在安装目录下,如:

D:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso

如果没有,可以去官网下载:Index of http://download.virtualbox.org/virtualbox/7.0.10

3.1.2 将增强工具添加到虚拟集中

  1. 关闭虚拟机:vagrant halt

  2. 打开 VirtualBox,并对虚拟机进行设置:

    image-20230805181544037

成功安装后如下图所示:

image-20230805182025182

3.2 修改 Vagrantfile

image-20230805182257304

  • 第一个路径:电脑中的目录,可以是绝对地址或相对地址,相对地址是指相对与 Vagrantfile 配置文件所在目录
  • 第二个路径:挂载到虚拟机上的目录地址,没有当前目录则创建

3.3 挂载

  1. 启动虚拟机:vagrant up

  2. 登录虚拟机:vagrant ssh

  3. 进入根目录:su root,密码默认为 vagrant

  4. 依次执行如下指令:

    # 如下指令一定是在 root 下执行的
    $ yum -y update
    $ yum -y install gcc
    $ yum -y install kernel
    $ yum -y install kernel-devel
    $ mount /dev/cdrom /mnt
    $ cd /mnt
    $ ./VBoxLinuxAdditions.run
    
  5. 重启虚拟机:vagrant reload

  6. 查看是否成功:
    image-20230805183027640

四、vagrant 常用命令

命令 作用
vagrant up 启动虚拟机
vagrant halt 关闭虚拟机
vagrant reload 重启虚拟机
vagrant status 查看虚拟机状态
vagrant ssh 登录虚拟机
exit 退出虚拟机
vagrant box list 查询 box
vagrant box add [box 路径] --name [boxname] 新增 box
vagrant box remove [boxname] 删除指定 box
vagrant destroy 删除虚拟机

参考资料

标签:box,Vagrant,虚拟机,vagrant,CentOS7,VirtualBox
From: https://www.cnblogs.com/hyacinthLJP/p/17608883.html

相关文章

  • Windows 在VMware Workstation 17上安装macOS Sonoma 虚拟机
    前言macOS在一些方面做得比Windows更好。但是,macOS只能安装在苹果电脑上,虽然黑苹果能满足部分人的要求,但依然有大部分机型无法安装黑苹果。而在虚拟机上,大部分用户都可以用上macOS,虽然流畅度等一般都没有白苹果、黑苹果好,但用来体验和日常使用是问题不大的。如果用来开发或编程之类......
  • 30.虚拟机换云服务器
    我一直以来我是用虚拟机安装的mysql,redis,es等,在本机安装nacos作为注册中心和配置中心的,每次重启电脑都需要启动nacos和虚拟机比较麻烦。今天斥巨资103.08元购买个一年的华为云服务器来用于开发,购买后mysql,redis这些都是安装在虚拟机,云服务器也是linux系统,直接在云服务器安装docke......
  • 虚拟机 中 centos8 ens33 无ip地址 解决
    执行以下命令#查看托管状态nmclin#显示disabled则为本文遇到的问题,如果是enabled则可以不用往下看了#开启托管nmclinon#重启systemctlrestartNetworkManager然后就可以继续玩耍了......
  • centos7.9 部署mongodb-4.4.18 分片集群
    准备基本环境名称ip地址cpu内存es监听端口redis-65110.0.2.18c64G9200redis-65210.0.2.28c64G9200redis-65310.0.2.38c64G9200......
  • 虚拟机中的ubuntu连不上网
        ......
  • Linux-CentOS7_RPM包管理
    常见的软件包封装类型封装类型说明rpm软件包扩展名为“.rpm”一般为二进制包源代码软件包一般为“.tar.gz”、“.tar.bz2”等格式的压缩包包含程序的原始代码附带安装程序的软件包在压缩包内提供install.sh、setup等安装程序或以“.bin”格式的单个执行文件提供绿色免安装的软件......
  • CentOS7 systemctl 管理MySQL服务
    #在/usr/lib/systemd/system/路径下创建mysql.service]#vim/usr/lib/systemd/system/mysql.service[Unit]Description=MySQLserverAfter=syslog.targetnetwork.target[Service]User=mysqlGroup=mysqlType=forkingTimeoutSec=0#PermissionsStartOnly=trueExecStar......
  • 《深入理解Java虚拟机》读书笔记:HotSpot虚拟机对象探秘
    基于实用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。以下是本节内容的脑图。 HotSpot虚拟机对象探秘脑图 一、对象的创建创建对象大致分为5步:1.检查类是否加载,没有加载先加载类2.分配内......
  • centos7中查看指定服务是否开机自动启动
     以ntpd服务为例001、查看ntpd服务的的当前状态[root@PC1home]#systemctllist-unit-files|grep"ntpd"##查看ntpd服务ntpd.servicedisabledntpdate.servicedisabled 002、设置ntpd服务开......
  • centos7中安装 ntp时间同步服务器
     001、查看ntp服务状态[root@PC1home]#cat/etc/redhat-release##系统版本CentOSLinuxrelease7.6.1810(Core) 002、启动ntp服务[root@PC1home]#systemctlstartntpd##没有安装ntpd服务Failedtostartntpd.service:Unitnotfound. 003、使......