**更多前沿技术关注:BUG弄潮儿 公众号**

1.新建虚拟机

创建一个目录

mkdir helloworld
cd helloworld

初始化虚拟机

vagrant init centos-7



Vagrant编排虚拟机_vagrant

其中的centos-7是CentOS7的box名字,也就是通过vagrant box add加载的box的名称。

vagrant box add E:\VirtualBox\box\CentOS-7.box --name centos-7

这个命令会生成一个Vagrantfile文件,这里的名字没指定或者写错了都没关系,后面需要根据具体情况编辑这个Vagrantfile文件。

2.启动虚拟机

执行命令

vagrant up

命令行执行日志



Vagrant编排虚拟机_linux_02

注意到这里包含的信息:

  • 虚机名称:helloworld_default_1685588926875——93754
  • 网卡:Adapter 1: nat,第一块网卡,NAT 模式,这是固定的
  • 端口转发:22 (guest) => 2222 (host) (adapter 1),把虚机的22端口,映射到宿主机的2222端口上,这样就可以通过127.0.0.1:2222访问虚拟机了
  • SSH 用户名:vagrant,这里使用 private key 登录;密码也是vagrant,但是密码方式仅供直接登录,是不能通过SSH 登录的。另外,还有一个root用户,密码也是vagrant。

执行成功后,VirtualBox显示



Vagrant编排虚拟机_ruby_03

3.查看虚拟机状态

vagrant status



Vagrant编排虚拟机_linux_04

vagrant status命令执行后,还提示了一些如何操作虚拟机的命令。

#关闭虚拟机
vagrant halt
#暂停虚拟机
vagrant suspend
#启动虚拟机
vagrant up

4.连接虚机

  • 命令行方式

执行如下命令

vagrant ssh

就能以vagrant用户直接登入虚拟机中



Vagrant编排虚拟机_运维_05

切换到root用户



Vagrant编排虚拟机_linux_06

另外,需要root用户权限的命令也可以通过在命令前添加sudo来执行,或者也可以执行sudo -i直接切换到root用户来执行。

打开VirtualBox程序,可以看到通过命令vagrant up创建的虚机



Vagrant编排虚拟机_服务器_07

  • VirtualBox界面方式

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



Vagrant编排虚拟机_服务器_08

登录



Vagrant编排虚拟机_运维_09

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

5.虚拟机其他操作命令

  • 停止
vagrant halt

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

  • 暂停
vagrant suspend
  • 恢复

把暂停状态的虚拟机恢复运行

vagrant resume

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

  • 重载

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

vagrant reload
  • 删除

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

vagrant destroy

注意:上面所有的 vagrant 命令都需要在 Vagrantfile 所在的目录下执行。

https://davycloud.com/post/vagrant-virtualbox-tutorial/