Vagrant
是一个基于Ruby
的工具,次要用于创立和部署虚拟化开发环境。它以来于Oracle
的开源VirtualBox
虚拟化零碎,通过应用Chef
创立自动化虚拟环境。-
Vagrant
次要的性能如下:- 建设和删除虚拟机
- 配置虚拟机相干参数
- 治理虚拟机运行状态
- 主动配置和装置开发环境
- 打包和散发虚拟机运行环境
- 因为
Vagrant
依赖于某种虚拟化技术,目前反对常见的VirtualBox
、VMWare
等,所以在应用Vagrant
之前咱们须要先装置VirtualBox
或VMWare
,不然无奈应用。举荐装置VirtualBox
。 vagrant
能够疾速,不便,全自动的构建虚拟化环境,这也是咱们抉择它的起因,而不是让咱们像以前一样全副本人来部署。- 它相似与
docker
这种,有本人的仓库,咱们间接能够通过命令从仓库中拉取虚构镜像来疾速构建
下载安装
VirtualBox
下载地址:https://www.virtualbox.org/wiki/Downloads,下载好后装置间接下一步操作vagrant
下载地址:https://www.vagrantup.com/downloads.html,也是间接下一步的操作实现,须要重启电脑装置完。
留神:
- 两者软件最好都下载最新的,省得呈现兼容问题,
- 须要装置虚拟机,须要先开启处理器虚拟化技术,_VT-x/AMD- V 硬件加速。_
Vagrant 根本命令
命令 | 作用 |
---|---|
vagrant box add | 增加 box 的操作 |
vagrant init | 初始化 box 的操作,会生成 vagrant 的配置文件 Vagrantfile |
vagrant up | 启动本地环境 |
vagrant ssh | 通过 ssh 登录本地环境所在虚拟机 |
vagrant halt | 敞开本地环境 |
vagrant suspend | 暂停本地环境 |
vagrant resume | 复原本地环境 |
vagrant reload | 批改了 Vagrantfile 后,使之失效(相当于先 halt,再 up) |
vagrant destroy | 彻底移除本地环境 |
vagrant box list | 显示以后曾经增加的 box 列表 |
vagrant box remove | 删除相应的 box |
vagrant package | 打包命令,能够把以后的运行的虚拟机环境进行打包 |
vagrant plugin | 用于装置卸载插件 |
vagrant status | 获取以后虚拟机的状态 |
vagrant global-status | 显示以后用户 Vagrant 的所有环境状态 |
装置一个虚拟机案例
- 首先咱们新建一个文件夹名字
vagrant
,这个名字随机,就是寄存要新建的虚拟机的配置的目录,之后在vagrant
目录中关上cmd
或Power Shell
窗口, - 执行上面命令:
vagrant init centos/7 –box-version 2004.01
PS D:\vagrant> vagrant init centos/7 --box-version 2004.01
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.
- 下面命令执行完结后,在之下上面
up
命令,这个过程会去下载咱们须要的镜像,是比拟漫长的过程,下载完后会间接启动,vagrant up
命令原本就是启动命令,这是是因为没有所以会先去下载,
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: 2004.01
==> default: Loading metadata for box 'centos/7'
default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v2004.01) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
Download redirected to host: cloud.centos.org
Progress: 3% (Rate: 371k/s, Estimated time remaining: 0:18:28)
- 当然咱们也能够间接提前将镜像文件下载好,间接应用
vagrant box add {name} {url}
的命令进行本地装置,其中,{name}
是咱们要装置的名称,url
是咱们下载到本地的镜像门路
PS D:\vagrant> vagrant box add centos/7 E:\ 迅雷下载 \CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
==> 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:/%D1%B8%C0%D7%CF%C2%D4%D8/CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
box:
==> box: Successfully added box 'centos/7' (v0) for 'virtualbox'!
- 如果是应用本地增加的,那么这里通过
vagrant up
来启动,如下:
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' version '2004.01' is up to date...
==> default: Clearing any previously set forwarded ports...
==> 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
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Rsyncing folder: /cygdrive/d/vagrant/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
- 启动后咱们能够通过
vagrant ssh
开启 SSH,并登陆到centos7
网络 IP 配置
- 这是一个虚拟机,那么咱们要实现与宿主机器的通信,能够采纳端口转发,或者独立局域网,端口转发并不不便须要咱们每个端口的配置,咱们这里间接采纳公有网段配置,也就是桥接的形式,
- 首先咱们查看本人
Windows
电脑的IP
,其中有个网卡VirtualBox Host-Only Network
。,这就是虚拟机的网卡,看到其IP
地址段
- 间接在咱们方才
vagrant
的目录下的Vagrantfile
文件中就行配置批改,这是咱们方才创立的虚拟机的配置文件,配置config.vm.network "private_network", ip: "192.168.56.10"
,如下所示:
- 外面能够配置很多,咱们配置公有网路,方才看到虚构网卡网段是
192.168.56.1
,那么咱们将这台的配置为192.168.56.10
,配置好之后须要重启虚拟机,通过vagrant reload
,进行重启,重启后咱们能够验证其与主机是否能互通
- 到此为止,咱们曾经配置好了虚拟机 的网络,那么咱们接下来是否能通过
Xshell
或Secure CRT
进行近程连贯呢? - 咱们须要开启远程登陆,通过
vagrant ssh
到虚拟机,之后找到/etc/ssh/sshd_config
文件批改它,通过sudo vi sshd_config
, 批改外面的如下两项内容,批改后间接wq
保留退出vi
PermitRootLogin yes
PasswordAuthentication yes
- 开启后,咱们再重启
SSHD
,通过systemctl restart sshd
,这时候会让你输出root
的明码,root
账号的明码默认也是vagrant
,你能够抉择间接用sudo
执行。
- 在
xshell
下测试是否能登录
本文由 AnonyStar 公布, 可转载但需申明原文出处。
欢送关注微信公账号:云栖简码 获取更多优质文章
更多文章关注笔者博客:云栖简码 i-code.online