前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vagrant学习笔记 - 入门

vagrant学习笔记 - 入门

作者头像
pollyduan
发布2019-11-04 14:07:46
6380
发布2019-11-04 14:07:46
举报

官网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绝对地址

代码语言:javascript
复制
vagrant box add precises64 http://files.vagrantup.com/precise64.box

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

代码语言:javascript
复制
vagrant box add precises64 ./precise64.box

3 使用仓库名称

代码语言:javascript
复制
vagrant box add precises64 ubuntu/precise64

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

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

代码语言:javascript
复制
$ vagrant box list
ubuntu/precise64                     (virtualbox, 20160120.0.0)

创建虚拟机:

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

代码语言:javascript
复制
$ mkdir -p ~/vm/precise64
$ vagrant init http://files.vagrantup.com/precise64.box

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

方式二 使用仓库名称

代码语言:javascript
复制
vagrant init ubuntu/precise64

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

代码语言:javascript
复制
$ 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/{发行版名称}-{操作系统版本号}

代码语言:javascript
复制
vagrant init bento/ubuntu-16.04
vagrant init bento/centos-7.3

Helloword

创建工作目录:

代码语言:javascript
复制
$ 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命令的作用就在于此:

代码语言:javascript
复制
$ vi /Users/pollyduan/vm/ubuntu/Vagrantfile

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

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

启动试试看:

代码语言:javascript
复制
$ vagrant up
$ exit #退出vm
$ vagrant halt #关闭虚机
$ vagrant destroy #删除虚机

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是vagrant?
  • 安装vagrant
  • 增加镜像
  • 创建虚拟机:
  • 推荐镜像
  • Helloword
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档