使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

一、准备工作

1.1 软件下载

  1. VirtualBox:Downloads – Oracle VM VirtualBox

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

  2. Vagrant:Install | Vagrant | HashiCorp Developer

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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 检查是否安装成功:

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

1.3 VirtualBox 设置

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

  1. 打开 VirtualBox

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

  3. 修改虚拟机安装位置

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

1.4 下载 CentOS7 虚拟镜像

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

1.5 打包下载

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

二、安装 CentOS7

2.1 新建虚拟机

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

2.1.1 添加 box

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

2.1.2 新建虚拟机

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

2.2 登录虚拟机

2.2.1 使用 vagrant 登录

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

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

2.2.2 使用 SecureCRT 免密登录

在使用 vagrant up 指令后,会在 CentOS7 目录下自动生成一个 .vagrant 目录,在该目录下有个 private_key 文件:D:VMWareVagrantCentOS7.vagrantmachinesdefaultvirtualboxprivate_key。

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

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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
      使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机
    4. :wq 保存后退出
  2. 使用 vagrant reload 重启虚拟机:

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

  3. 使用密码登录:
    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

    • 默认登录密码为:vagrant

2.3 使用私有网络登录

2.3.1 关闭虚拟机

修改前,先关闭虚拟机:

vagrant halt	# PowerShell 下执行  

如下图所示:

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

2.3.2 获取 VirtualBox 的 IP

查找方式如下图所示:

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

2.3.3 修改 Vagrantfile

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

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

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

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

2.3.4 使用私有 IP 登录

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

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

三、设置共享文件夹

3.1 VBoxGuestAdditions.iso

3.1.1 获取文件

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

D:Program FilesOracleVirtualBoxVBoxGuestAdditions.iso

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

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

  1. 关闭虚拟机:vagrant halt

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

    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

成功安装后如下图所示:

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

3.2 修改 Vagrantfile

使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

  • 第一个路径:电脑中的目录,可以是绝对地址或相对地址,相对地址是指相对与 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. 查看是否成功:
    使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

四、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 删除虚拟机

参考资料

发表评论

评论已关闭。

相关文章