专栏首页云架构修炼手册vagrant学习笔记 - 入门

vagrant学习笔记 - 入门

官网http://www.vagrantup.com/

官方下载地址:https://www.vagrantup.com/downloads.html

旧版本下载:https://releases.hashicorp.com/vagrant/

box下载:

官方仓库:https://atlas.hashicorp.com/boxes/search

官方镜像:https://vagrantcloud.com/boxes/search

第三方仓库:http://www.vagrantbox.es/

什么是vagrant?

用官方的定义,vagrant——让搭建开发环境如此简单。它可以为我们搭建和配置轻量级的、可重用的、可移植的开发环境。通俗地讲,它是一个用来简化虚拟机配置和管理的命令行工具。 vagrant支持VirtualBox, VMware, AWS以及其他任何虚拟机(这话说的够大,不过也八九不离十)。

先来约定几个关键词 host——宿主,主机,也就是你安装虚拟机软件和vagrant的操作系统; guest/vm——虚拟机,客户机,也就是我们要制作的虚拟机环境。

安装vagrant

根据你的操作系统下载vagrant安装包。 目前支持的host有Mac osx、windows、debian、centos,当然也支持ubuntu、redhat、fedora了,你懂的。

截至本文完成,最新版本是1.8.1。

自行安装虚拟机管理软件,我使用的是mac osx + virtualbox(http://www.virtualbox.org)

仓库里的box镜像下载有点慢,如果下载不了,我放了个centos的box文件在百度云,http://pan.baidu.com/s/1XkmEM

增加镜像

将镜像添加到本地仓库,有三种方式: 1 使用http绝对地址

vagrant box add precises64 http://files.vagrantup.com/precise64.box

2 使用本地文件(其实从协议来说,和上面一样,只是相当于file:///协议的地址)

vagrant box add precises64 ./precise64.box

3 使用仓库名称

vagrant box add precises64 ubuntu/precise64

这种方式,vagrant会自动在中央仓库查找并下载到本地镜像库中。 vagrant box add ubuntu/precise64 这样省略本地镜像名称,则直接用中央仓库中的镜像名作为本地镜像名,这样做的好处是可以跟仓库中的镜像对应。

最后,执行下面的命令看一下:

$ vagrant box list
ubuntu/precise64                     (virtualbox, 20160120.0.0)

创建虚拟机:

类似于增加本地仓库镜像的操作,该操作使用镜像创建一个vm虚拟机。 方式一 使用http绝对地址

$ mkdir -p ~/vm/precise64
$ vagrant init http://files.vagrantup.com/precise64.box

该操作只是使用该仓库名创建Vagrantfile文件,并不拉取镜像,在vagrant up的时候才会拉取镜像。

方式二 使用仓库名称

vagrant init ubuntu/precise64

方式三 使用Vagrantfile文件 直接编写,或通过http/git从网络上拉取到Vagrantfile文件后,作为虚拟机配置文件。如:

$ mkdir -p ~/vm/coreos;cd !$
$ git clone https://github.com/coreos/coreos-vagrant.git

推荐镜像

推荐bento组织的作品,linux发行版和对应的版本号比较全,如下网址查看镜像名称即可:

https://app.vagrantup.com/boxes/search?utf8=✓&sort=downloads&provider=&q=bento

使用时,直接使用镜像名,无需记住网址,都是形如:bento/{发行版名称}-{操作系统版本号}

vagrant init bento/ubuntu-16.04
vagrant init bento/centos-7.3

Helloword

创建工作目录:

$ mkdir -p /Users/pollyduan/vm/ubuntu
$ cd /Users/pollyduan/vm/ubuntu
$ vagrant init ubuntu/precise64
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/precise64' is up to date...
==> default: Setting the name of the VM: ubuntu_default_1455425367263_71317
==> 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:
    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: 4.1.44
    default: VirtualBox Version: 5.0
==> default: Mounting shared folders...
    default: /vagrant => /Users/pollyduan/vm/ubuntu

$ vagrant ssh
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-97-virtual x86_64)

vagrant@vagrant-ubuntu-precise-64:~$

现在,你已经在vm虚拟里面了。你可以使用软件管理工具进行安装环境。如ubuntu里的apt-get、centos里的yum或者新版fedora里的dnf

还有一种方式,就是自己编写Vagrantfile文件,前面的例子,去掉注释,就是一个最简单的vagrant file的例子 - hello vagrant,vagrant init命令的作用就在于此:

$ vi /Users/pollyduan/vm/ubuntu/Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/precise64"
end

启动试试看:

$ vagrant up
$ exit #退出vm
$ vagrant halt #关闭虚机
$ vagrant destroy #删除虚机

创建的虚机工作目录在用户目录下的 ~/VirtualBox VMs/ 里。

本文涉及的基本使用,一般情况下够用了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么我抛弃了 Ubuntu?

    Ubuntu 是很多开发者优先选择的 Linux 发行版之一,但是本文的作者在使用了十年之后却最终“抛弃”它转投“他人”怀抱。原因何在?

    程序员小强
  • [视频教程]利用SSH隧道进行远程腾讯云服务器项目xdebug调试

    我的远程服务器是腾讯云的ubuntu系统机器,本地我的电脑系统是deepin的系统,使用的IDE是vscode。现在就来使用本地的IDE来调试腾讯云中为网站项目...

    陶士涵
  • 霸榜 GitHub,只用 1MB,就能识别出你这张脸!

    项目地址:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB

    GitHubDaily
  • 动手搭建自己第一台基于ROS2-Arduino的SLAM小车

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    zhangrelay
  • 入门学习SLAM(Windows &Ubuntu 16.04 双系统安装图片教程)

    入门学习SLAM计划是一个系列,从开始记录大家的学习过程,每一步我们都是有规划的。前一段时间发现了一篇安装Windows + Ubuntu 16.04 双系统安...

    小白学视觉
  • 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜

    项目地址:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB

    小小詹同学
  • 为什么我抛弃了 Ubuntu?

    十多年来,我一直在使用 Ubuntu 的 Linux 发行版。但是,经过这么长时间以后,我第一次改变了心意。如今我开始使用 Manjaro,而且感觉非常好!

    GitHubDaily
  • ROS1Melodic+ROS2Dashing+Arduino学习镜像(机器人控制器编程)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    zhangrelay
  • VM虚拟机中安装Debian系统

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    周小董
  • 树莓派4上跑 .NET Core 3.0,这次,真·64位!

    前不久我写了一篇《在树莓派4上安装 .NET Core 3.0 运行时及 SDK》,以及后续《“自启动”树莓派上的 .NET Core 3.0 环境》、《Ngi...

    Edi Wang

扫码关注云+社区

领取腾讯云代金券