乐趣区

关于java-ee:效率工具-快速创建虚拟机Vagrant真香

  • Vagrant 是一个基于 Ruby 的工具,次要用于创立和部署虚拟化开发环境。它以来于 Oracle 的开源 VirtualBox 虚拟化零碎,通过应用 Chef创立自动化虚拟环境。
  • Vagrant 次要的性能如下:

    • 建设和删除虚拟机
    • 配置虚拟机相干参数
    • 治理虚拟机运行状态
    • 主动配置和装置开发环境
    • 打包和散发虚拟机运行环境
  • 因为 Vagrant 依赖于某种虚拟化技术,目前反对常见的 VirtualBoxVMWare等,所以在应用 Vagrant 之前咱们须要先装置 VirtualBoxVMWare,不然无奈应用。举荐装置 VirtualBox
  • vagrant 能够疾速,不便,全自动的构建虚拟化环境,这也是咱们抉择它的起因,而不是让咱们像以前一样全副本人来部署。
  • 它相似与 docker 这种,有本人的仓库,咱们间接能够通过命令从仓库中拉取虚构镜像来疾速构建

下载安装

  • VirtualBox下载地址:https://www.virtualbox.org/wiki/Downloads,下载好后装置间接下一步操作
  • vagrant下载地址:https://www.vagrantup.com/downloads.html,也是间接下一步的操作实现,须要重启电脑装置完。

留神:

  1. 两者软件最好都下载最新的,省得呈现兼容问题,
  2. 须要装置虚拟机,须要先开启处理器虚拟化技术,_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 目录中关上 cmdPower 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,进行重启,重启后咱们能够验证其与主机是否能互通

  • 到此为止,咱们曾经配置好了虚拟机 的网络,那么咱们接下来是否能通过 XshellSecure 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

退出移动版