15.【原创】使用vagrant给VirtualBox安装linux镜像

vagrant是一个工具,用于创建和部署虚拟化开发环境的。使用它初始化linux实例会非常方便,话不多说,一起来看看具体操作步骤吧。

1.下载安装VirtualBox

  直接到VirtualBox的官网下载即可,基本没什么难度,安装也是傻瓜式的,只是要开启主板Bois中的虚拟化选项(官网:https://www.virtualbox.org/wiki/Downloads)。

2.下载安装Vagrant

  2.1.Windows下安装Vagrant也是比较简单的,选定好安装目录狂点下一步即可,安装好后需要重启一下电脑(地址:https://www.vagrantup.com/downloads)。

  2.2.重启电脑后,打开cmd或者powershell输入"vagrant"指令稍等一会,如果出现如下操作指令提示则代表安装成功:

Microsoft Windows [版本 10.0.18362.900]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\Nick>vagrant
Usage: vagrant [options] <command> [<args>]

    -h, --help                       Print this help.

Common commands:
     box             manages boxes: installation, removal, etc.
     cloud           manages everything related to Vagrant Cloud
     destroy         stops and deletes all traces of the vagrant machine
     global-status   outputs status Vagrant environments for this user
     halt            stops the vagrant machine
     help            shows the help for a subcommand
     init            initializes a new Vagrant environment by creating a Vagrantfile
     login
     package         packages a running vagrant environment into a box
     plugin          manages plugins: install, uninstall, update, etc.
     port            displays information about guest port mappings
     powershell      connects to machine via powershell remoting
     provision       provisions the vagrant machine
     push            deploys code in this environment to a configured destination
     rdp             connects to machine via RDP
     reload          restarts vagrant machine, loads new Vagrantfile configuration
     resume          resume a suspended vagrant machine
     snapshot        manages snapshots: saving, restoring, etc.
     ssh             connects to machine via SSH
     ssh-config      outputs OpenSSH valid configuration to connect to the machine
     status          outputs status of the vagrant machine
     suspend         suspends the machine
     up              starts and provisions the vagrant environment
     upload          upload to machine via communicator
     validate        validates the Vagrantfile
     version         prints current and latest Vagrant version
     winrm           executes commands on a machine via WinRM
     winrm-config    outputs WinRM configuration to connect to the machine

For help on any individual command run `vagrant COMMAND -h`

Additional subcommands are available, but are either more advanced
or not commonly used. To see all subcommands, run the command
`vagrant list-commands`.
        --[no-]color                 Enable or disable color output
        --machine-readable           Enable machine readable output
    -v, --version                    Display Vagrant version
        --debug                      Enable debug output
        --timestamp                  Enable timestamps on log output
        --debug-timestamp            Enable debug output with timestamps
        --no-tty                     Enable non-interactive output

  

  2.3.在cmd(以管理员身份运行)中切换到存放镜像的目录下,输入"vagrant init + 镜像名称"即可初始化镜像配置文件到VirtualBox中,其中镜像名称可到vagrant的官网查看,此处我用的是"ubuntu/trusty64"(地址:https://app.vagrantup.com/boxes/search?provider=virtualbox)。出现如下提示代表已经初始化配置文件了,或者到对应目录查看该文件是否生成。(此处“images”为镜像安装文件夹,后面步骤3.1中镜像安装地址切换为“VirtualBoxVMs”)

G:\Vagrant\images>vagrant init ubuntu/trusty64
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.

   

  2.4.接着输入"vagrant up"命令启动镜像,第一次启动时因为没有镜像文件,vagrant会到其远程仓库下载对应的.box后缀的镜像,下载完成之后会启动镜像并且默认将"vagrant"设置为该镜像的管理员,我们使用"vagrant ssh"进行连接或者使用ssh工具连接即可。但是实际操作中发现在国内从vagrant官方仓库中下载镜像是在是太慢了。所以现在有两个解决方案,一是采用传统方式使用linux的.ios文件和VirtualBox的安装向导安装,但是这种方式不在本次讨论的范围(可参考此文下载阿里的镜像:https://www.cnblogs.com/Nick-Hu/p/13277154.html)。第二种方式就是下载好.box镜像到本地,使用vagrant导入本地的镜像,接下来着重讨论此种方式。

 

3..使用下列的国内镜像地址下载需要的.box镜像,使用vagrant进行本地添加。

CentOS 6/7/8 修改链接中的版本号可以下载不同版本 http://mirrors.ustc.edu.cn/centos-cloud/centos/6/vagrant/x86_64/images/
Ubuntu Server 14.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/vagrant/trusty/current/
Ubuntu Server 16.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/xenial/current/
Ubuntu Server 18.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/bionic/current/
Ubuntu Server 20.04 http://mirrors.ustc.edu.cn/ubuntu-cloud-images/focal/current/

 

  3.1.下载好.box镜像之后将镜像文件移动到镜像存放目录使用下列命令将此镜像添加到vagrant的镜像列表中(其中,VirtualBoxVMs为镜像安装目录,指令格式:vagrant box add {镜像实例名称} {镜像路径})。

G:\VirtualBoxVMs>vagrant box add ubuntu16.04.001 xenial-server-cloudimg-amd64-vagrant.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'ubuntu16.04.001' (v0) for provider:
    box: Unpacking necessary files from: file://G:/VirtualBoxVMs/xenial-server-cloudimg-amd64-vagrant.box
    box:
==> box: Successfully added box 'ubuntu16.04.001' (v0) for 'virtualbox'!

G:\VirtualBoxVMs>vagrant init ubuntu16.04.001
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.

 

  3.2.初始化镜像的配置文件("ubuntu16.04.001"为3.1步骤中自定的镜像实例名称)

G:\VirtualBoxVMs>vagrant init ubuntu16.04.001
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.

  

  3.3.启动镜像实例("SSH address: 127.0.0.1:2222"为镜像实例的地址和端口,"SSH username: vagrant"中的初始化超级管理员的账户名和密码)

G:\VirtualBoxVMs>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu16.04.001'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: VirtualBoxVMs_default_1594313488822_28629
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> 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: Running 'pre-boot' VM customizations...
==> 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: Warning: Connection reset. Retrying...
    default: Warning: Connection aborted. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.1.38
    default: VirtualBox Version: 6.1
==> default: Mounting shared folders...
    default: /vagrant => G:/VirtualBoxVMs

  

  3.4.使用"vagrant ssh"指令访问镜像实例

G:\VirtualBoxVMs>vagrant ssh
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-184-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


0 packages can be updated.
0 updates are security updates.

New release '18.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-184-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


0 packages can be updated.
0 updates are security updates.

New release '18.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

vagrant@ubuntu-xenial:/$ ls
bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  vagrant  vmlinuz
boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  var      vmlinuz.old

vagrant@ubuntu-xenial:/$ exit
logout
Connection to 127.0.0.1 closed.

  

4.【附】Vagrant常用命令

序号 命令 解释 
1  vagrant box list  查看目前已有的box
2  vagrant box add  新增加一个box
3  vagrant box remove  删除指定box
4  vagrant init  初始化配置vagrantfile
5  vagrant up  启动虚拟机
6  vagrant ssh ssh  登录虚拟机
7  vagrant suspend  挂起虚拟机
8  vagrant reload  重启虚拟机
9  vagrant halt  关闭虚拟机
10  vagrant status  查看虚拟机状态
11  vagrant destroy  删除虚拟机
posted @ 2020-07-09 22:22  想~(●—●)肥~  阅读(741)  评论(0编辑  收藏  举报