Vagrant 快速搭建Linux开发环境

Vagrant 快速搭建Linux开发环境

安装软件

百度搜索进入官网下载软件

  • VirtualBox
  • Vagrant

配置 Vagrant

在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为 VAGRANT_HOME,变量值为 D:\VirtualBox\.vagrant.d

设置虚拟机存放目录

下载虚机镜像

  • CentOS .box文件

配置虚机存放位置

创建虚拟机会占用较多的磁盘空间,在 Windows 系统下默认的虚机创建位置是在 C 盘,所以最好配置到其它地方。

配置 VirtualBox

启动 VirtualBox 后,通过菜单 管理 -> 全局设定,或者按下快捷键 Ctrl + g,在全局设定对话框中,修改 默认虚拟电脑位置,指定一个容量较大的磁盘。

添加 box

接下来我们需要将下载后的 .box 文件添加到 vagrant 中。

$ vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

提示现在还没有 box。如果这是第一次运行,此时 VAGRANT_HOME 目录下会自动生成若干的文件和文件夹,其中有一个 boxes 文件夹,这就是要存放 box 文件的地方。

执行 vagrant box add 命令添加 box:

$ vagrant box add D:\2.软件安装包\3.java开发\virtualbox.box --name centos-7
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos-7' (v0) for provider:
    box: Unpacking necessary files from: file:///e:/Downloads/CentOS-7.box
    box:
==> box: Successfully added box 'centos-7' (v0) for 'virtualbox'!

命令后面跟着的是下载的文件路径,并且通过 --name centos-7 为这个 box 指定一个名字。

后面创建虚机都需要指定这个名字,所以尽量把名字取得简短一点,同时也要能标识出这个镜像的信息(我们后面会定制自己的基础镜像,所以这里可以简单点)。

再次查询,可以看到有了一个 box:

$ vagrant box list
centos-7 (virtualbox, 0)

创建一个目录,先执行 vagrant init

$ mkdir demo
$ cd demo
$ vagrant init centos-7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

其中的 centos-7 就是我们要使用的 box 名字。

这个命令只是为我们生成一个 Vagrantfile,所以,这里的名字没指定或者写错了都没关系,后面会介绍如何编辑这个 Vagrantfile 来修改。

启动虚机

我们等会再来细看这个文件,现在直接按照提示执行 vagrant up

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos-7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: demo_default_1588406874156_65036
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key

正常的情况下,不到一分钟应该就能启动成功了。

这里我遇到点问题,2222 端口转发出现未知错误,造成 vagrant 的启动超时。检查了这个端口并没被占用,同时更改大一点的端口可以转发成功,所以应该是系统哪里有点问题。在后面我介绍了如何处理,如果你也遇到和我一样的情况,可先跳到下面查看。

注意到这里包含的信息:

  • 虚机名称:demo_default_1588406874156_65036(想改?最后有提)
  • 网卡:Adapter 1: nat,第一块网卡,NAT 模式,这是固定的
  • 端口转发:22 (guest) => 2222 (host) (adapter 1),把虚机的 22 端口,映射到宿主机的 2222 端口上,这样就可以通过 127.0.0.1:2222 访问虚拟机了
  • SSH 用户名:vagrant,这里使用 private key 登录

密码也是 vagrant,但是密码方式仅供直接登录,是不能通过 SSH 登录的。

查看虚机状态

执行下面的命令可以查看虚机的状态:

vagrant status

Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

该命令还提示了如何操作虚机,我们继续一一介绍

连接虚机

如果启动没问题,接下来执行 vagrant ssh 就能以 vagrant 用户直接登入虚机中。

root 用户没有默认密码,也不能直接登录。需要 root 权限的命令可以通过在命令前添加 sudo 来执行,也可以执行 sudo -i 直接切换到 root 用户。

这时候打开 VirtualBox 程序,可以看到自动创建的虚机:

![img](https://pic4.zhimg.com/80/v2-34eb6f9e2fc34aea3ae2d4d80328ff7f_720w.jpg

我们也可以在 VirtualBox 的终端上登录系统,默认的登录用户名和密码都是 vagrant

当然还可以使用其它的 SSH 连接工具例如 XShell,SecureCRT 连接,但是这里默认网卡使用的是 NAT 模式,没有指定 IP,实际应用并不方便,我们在后面介绍网络配置时再详细介绍如何连接虚机。

停止虚机

执行下面的命令可以关闭虚机:

vagrant halt

直接在 VirtualBox 上关闭虚机,或者直接在虚机内部执行 poweroff 命令也都是可以的。

暂停虚机

执行下面的命令可以暂停虚机:

vagrant suspend

恢复虚机

执行下面的命令把暂停状态的虚机恢复运行:

vagrant resume

注意: 不管虚机是关闭还是暂停状态,甚至是 error 状态,都可以执行 vagrant up 来让虚机恢复运行。

重载虚机

执行下面的命令会重启虚机,并且重新加载 Vagrantfile 中的配置信息:

vagrant reload

删除虚机

最后,执行下面的命令可以彻底删除虚机,包括整个虚机文件:

vagrant destroy

注意: 在当前这个小例子中,上面所有的 vagrant 命令都需要在 Vagrantfile 所在的目录下执行。

猜你喜欢

转载自blog.csdn.net/m0_53301637/article/details/114526971
今日推荐