Vagrant入门

vagrant工具的使用介绍

一、认识Vagrant

1.1 什么是vagrant?

1)Vagrant是一款用来构建虚拟开发环境的工具

官网地址:https://www.vagrantup.com

box下载:http://www.vagrantbox.es

2)基于ruby开发

3)默认使用Oracle virtualbox作为虚拟化工具,需要打开机器的虚拟机支持

解决:进入BIOS开启VT虚拟化

1.2 vagrant常用命令

# vagrant box add {title} {url}
# examples:
vagrant box add cnetos66 c:\work\vm\centos66_v2.box
vagrant box add https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

vagrant init [boxname]       # 生成配置文件
vagrant -h                   # 查看帮助
vagrant up [name]            # 启动虚拟机
vagrant ssh [name]           # 连接
vagrant suspend [name]       # 相当于休眠
vagrant resume [name]        # 恢复
vagrant reload               # 修改配置文件后,重启虚拟化开发环境
vagrant [-f] destory [name]  # 删除虚拟机
vagrant box list             # 列出当前导入的box
vagrant box remove [name]    # 移除box
vagrant up [name]            # 启动machine
vagrant halt [name]          # 关闭machine
vagrant status [name]        # 查看machine的状态

# 将虚拟机打包成box
vagrant package centos66 --output c:\work\box\centos_mysql.box

1.3 vagrant配置文件

https://www.vagrantup.com/docs/vagrantfile/

1)生成配置文件

vagrant init [boxname]
# 说明
# 当前目录下生成Vagrantfile文件
# 使用ruby的语法,迭代器遍历

vagrant init centos/7 --box-version 1801.02
vagrant up
# 说明
# boxname参数:
# box-version参数:1801.02
# 如果本地没有会从https://vagrantcloud.com/centos/7下载
# https://vagrantcloud.com/centos/boxes/7/versions/1801.02/providers/virtualbox.box

生成如下配置

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_version = "1801.02"
end

2)网络的三种配置模式

# 较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:
# guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
# 宿主机端口 > 1024
config.vm.network: "forwarded_port", guest: 80, host: 8080, protocol: "tcp/udp"

# host only
# 如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,
# 可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:
# 192.168.1.120 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
config.vm.network: "private_network", ip: "192.168.1.120"

# 如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:
config.vm.network: "public_network", ip: "192.168.1.120"

# 共有网络,还可以支持网桥
config.vm.netowrk "public_network", :bridge => 'eth1: SSID'

3)文件目录共享

config.vm.synced_folder "c:/work/vm", "/data"
config.vm.synced_folder "./", "/data/web/apache_default/"

二、实践

2.1 安装Vagrant

1)下载

https://www.vagrantup.com/downloads.html

vagrant_2.0.2_x86_64.msi

2)安装

默认安装就可以(自动添加vagrant安装目录下的bin目录加入到path)

3)验证安装

vagrant -v

2.2 安装VirtualBox

VirtualBox-5.2.0-118431-Win.exe

默认安装就可以了

修改一下默认虚拟机位置

2.3 box->Vagrant

下载box

http://www.vagrantbox.es/

# CentOS 6.7 x64 (Minimal, Puppet 4.2.3, Guest Additions 4.3.30)[notes]
https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box

新建工作目录并且切换到该目录下

mkdir E:\work\vm
cd E:\work\vm

添加box到Vagrant

vagrant box add centos67 E:\work\box\vagrant-centos-6.7.box
# 说明
# vagrant:vagrant的命令
# box:参数
# add:添加一个box镜像
# centos67:镜像名称
# E:\work\box\vagrant-centos-6.7.box:镜像的地址

# 查看box
vagrant box list

初始化配置

# 在当前工作目录下生成配置文件Vagrantfile
vagrant init centos67
# 说明
# centos67:box名称,如果只有一个可省略

配置文件

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

Vagrant.configure("2") do |config|
    config.vm.define :node0 do |node0|
        node0.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--name", "node0", "--memory", "1024"]
        end
        node0.vm.box = "centos67"
        node0.vm.hostname = "node0"
        node0.vm.network :public_network, ip:"192.168.5.150", bridge: "eth1"
        node0.vm.synced_folder "data", "/data"
        node0.vm.synced_folder "E:\\git_home\\book\\2017\\Cpp_Primer\\samples", "/work"
    end
end

配置文件说明

  1. 这是ruby的语法
  2. Vagrant.configure("2") :2是版本的意思
  3. |config|、|node0|、|v| :变量的意思
  4. v.gui = true :virtualbox的界面也会启动

管理虚拟机

# 启动
vagrant up

# 查看状态
vagrant status

# 停止
vagrant halt

# 释放
vagrant destory

# 查看已加载的box
vagrant box list

2.4 Vagrant->box

# 打包虚拟机
vagrant package centos67 --output e:\work\vm\centos_mysql.box

# 说明:
# 如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
# sudo rm -f /etc/udev/rule.d/70-persistent-net.rules

三、参考

  1. 官方文档
  2. Getting Started
  3. 搭建Linux工作环境之Vagrant
  4. 使用vagrant+VirtualBox搭建代码建调试环境
  5. 使用vagrant部署开发环境
  6. 使用Vagrant在Windows下部署开发环境
  7. 创建自己的Vagrant box

原文地址:https://www.cnblogs.com/okokabcd/p/8470501.html

时间: 2024-10-12 23:11:05

Vagrant入门的相关文章

[转帖]Vagrant 入门指南

Vagrant 入门指南 https://linux.cn/article-9587-1.html Vagrant 简介 Vagrant 是一个用来构建和管理虚拟机环境的工具.Vagrant 有着易于使用的工作流,并且专注于自动化,降低了开发者搭建环境的时间,提高了生产力.解决了“在我的机器上可以工作”的问题. Vagrant 是为了方便的实现虚拟化环境而设计的,使用 Ruby 开发,基于 VirtualBox 等虚拟机管理软件的接口,提供了一个可配置.轻量级的便携式虚拟开发环境.使用 Vagr

vagrant 入门1

1. Vagrant功能: Vagrant usesOracle's VirtualBox to build configurable, lightweight, and portable virtual machines dynamically.. [Vagrant 使用Oracle VM VirtualBox 动态创建和配置轻量级的,可重现的,便携的虚拟机环境.] 2. Vagrant下载: http://downloads.vagrantup.com 3. Vagrant安装: 3.1.

vagrant 入门3

创建第一个Vagrant虚拟环境以及工程(续集): (8) Provisioning: 通常情况下Box只做最基本的设置,而不是一次到位的设置好所有的环境.Vagrant通常使用chef或者Puppet来做进一步的环境搭建. 回到刚才创建的index.html,我们需要安装Apache.我们下面用Puppet来完成这一设置. 1. 在项目的根目录下创建文件夹manifests,然后在该文件家中创建Puppet的配置文件default.pp,该文件内容如下: # Basic Puppet Apac

vagrant 入门2

创建第一个Vagrant虚拟环境以及工程: (1)创建工程目录, 并且执行vagrant init命令,该命令会产生最初的 Vagrantfile $ mkdir vagrant_guide $ cd vagrant_guide $ vagrant init (2)添加一个Base Box: Vagrant不是从头开始创建虚拟机,而是导入一个虚机的base image,在这个基础上进行构建.这些image就叫做Box. Vagrant 支持从本地文件系统或者HTTP URL来添加boxes $v

vagrant部署开发环境,爽的不是一点点

首先说说vagrant与docker的区别 vagrant是用来管虚拟机的,而docker是管容器的(如不准确,还望指正) docker的启动速度当然是无可比拟的,而vagrant当然不是要很docker比启动速度的,vagrant就是管虚拟机的,虚拟机与容器的区别,大家见仁见智. 再来介绍一下vagrant: Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境---百度百科 首先提一个

如何拥有一个自己的Vagrant box

这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 在上一篇中,我们讲到了Vagrant的基本使用,在本文中我们将尝试创建自己的Vagrant box. 本文源代码:https://github.com/davenkin/vagrant/tree/master/ubuntu1604-jdk1.8-tomcat8 Vagrant box只是提供了一个

001_vagrant利器

一. 这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 http://www.cnblogs.com/davenkin/p/vagrant-virtualbox.html 创建自己的Vagrant box http://www.cnblogs.com/davenkin/p/create-own-vagrant-box.html 用Vagrant搭建Jenkins构建环境 http://www.cnblogs.com/davenkin/p/vagrant-jenkins-m

【实战】Docker 入门实战一

Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低 从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境   ,那么

使用Vagrant和Virtualbox创建虚拟机

简单地说,Vagrant让我们可以通过代码的方式快速地.可重复地创建针对不同虚拟环境的虚拟机,包括Virtualbox.AWS.Docker等.它使得我们可以一次性地.自动创建多个环境相同的虚拟机,对于软件开发和测试尤其有用.本文我们将以Virtualbox为例,看看Vagrant的基本使用. (一)快速入门 首先需要创建一个目录用于存放Vagrantfile文件以及Vagrant在工作中的数据: mkdir my-vagrant-project cd my-vagrant-project 然后