Vagrant简介

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。

在Windows下,也可以方便地使用Linux环境开发程序

官方文档 http://docs.vagrantup.com/v2/getting-started/index.html

box https://vagrantcloud.com/discover/featured

准备工作

下载安装 VirtualBox https://www.virtualbox.org/wiki/Downloads

下载安装 Vagrant http://www.vagrantup.com/downloads.html

初始化Vagrant

#进入D盘
C:\Windows\system32>d:
#创建一个虚拟机的主目录,这个目录会与虚拟机/vagrant保持同步
mkdir vagrant_getting_started
cd vagrant_getting_started
#初始化,这里需要一个centos的box,在box分享网站上可以找到chef/centos-6.5
vagrant init chef/centos-6.5
#启动虚拟机
vagrant up
#登录虚拟机
vagrant ssh

配置开发环境

su root
Password:vagrant
#更改root密码,方便SecureCRT登录 默认虚拟机22端口映射宿主机2222端口
service sshd reload
passwd root
#后续的服务器安全加固措施,可以使用key登录
#下面的操作是让虚拟机更加稳定
sudo yum update -y
sudo yum install gcc
sudo install kernel-devel

常用命令

box管理

vagrant box list #列出可用box
vagrant box add chef/centos-6.5 #添加云box上的镜像
vagrant box add chef/centos-6.5 chef/centos-6.5.box #添加本地box

虚拟机管理命令

vagrant up #启动
vagrant reload #修改Vagrantfile快速使之快速生效
vagrant halt #关闭
vagrant suspend #暂停
vagrant resume #恢复
vagrant destroy #删除

打包box

  1. 创建新的文件Vagrantfile.pkg
    Vagrant::Config.run do |config|
    #Forward apache
    config.vm.forward_port 80, 8080
    end
  2. 打包Project
    #打包完成后,会在工程根目录下生成package.box
    vagrant package --vagrantfile Vagrantfile.pkg
  3. private_network模式需要清除一下配置
    rm -f /etc/udev/rule.d/70-persistent-net.rules
    

Vagrantfile 配置

Vagrantfile 工程根目录下,虚拟机的主要配置文件,提供网络配置,共享配置,环境初始化配置

(支持shell命令及脚本,chef,puppet,salt,Docker)

网络配置

#端口映射
config.vm.network :forwarded_port, guest: 80, host: 8080
#私有网络
config.vm.network :private_network, ip: "192.168.1.104"
#DHCP接入实体网络
config.vm.network :public_network
#网卡桥接接入实体网络
config.vm.network "public_network", bridge: 'en1: Wi-Fi (AirPort)'

共享

#目录共享
config.vm.synced_folder "E:/Blog", "/home/vagrant/Blog"

环境初始化provision

执行脚本
#!/usr/bin/env bash
yum update
yum install -y apache2
rm -rf /var/www
ln -fs /vagrant /var/www
Vagrant.configure("2") do |config|
config.vm.box = "chef/centos-6.5"
config.vm.provision :shell, path: "bootstrap.sh"
end

运行Docker

异常问题

共享加载失败

vagrant halt
vagrant plugin install vagrant-vbguest
vagrant up

最新文章

  1. java中调用xml的方法:DocumentBuilderFactory
  2. Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
  3. 通过javascript在网页端生成zip压缩包并下载
  4. hdu 5306 优先队列
  5. android 下载图片出现SkImageDecoder::Factory returned null,BitmapFactory.Options压缩
  6. ACCESS-类型转换函数
  7. 百度之星资格赛——Disk Schedule(双调旅行商问题)
  8. cfdiv2/c/找规律
  9. inline-block 元素之间的空白问题
  10. 【quickhybrid】架构一个Hybrid框架
  11. HDFS中namenode启动失败
  12. 【Teradata SQL】禁用和启用数据库用户登录
  13. 制作CSS绚烂效果的三种属性
  14. 第二节,surf特征检测关键点,实现图片拼接
  15. WPF通过DynamicResource的用法
  16. Docker Swarm集群部署
  17. FW: Solving SharePoint Server -503. The service is unavailable, After installation
  18. Vue-cli 配置开发环境让测试服务器监听所有IP
  19. ubuntu添加默认路由才可以访问网络
  20. android检测网络连接状态示例讲解

热门文章

  1. (转)ecshop 后台商品分类添加图片的功能
  2. Swift - 03 - 整数类型
  3. html5 高清屏幕图片处理
  4. arp断网攻击解决办法
  5. Java学习----变量是什么
  6. jQuery图片提示示例
  7. Joomla安装图文教程 (送 Joomla 中文语言包)
  8. C# ORM—Entity Framework 之Code first(代码优先)(二)
  9. 学生选课系统数据库SQL语句考试题
  10. Ant快速入门(一)-----Ant介绍