Vagrant+VirtualBox虚拟环境
Vagrant+VirtualBox虚拟环境
1. 软件安装
安装都比较简单,下载一直点击Next。
VirtualBox安装:官网主页
Vagrant安装:官网主页
2. 虚拟机基础配置
虚拟机创建
查看命令与子命令帮助文档:
vagrant -h
vagrant COMMAND -h
box子命令: vagrant box -h
- 到VirtualBox上找到一个自己需要的虚拟机,这里使用 centos/7

- 初始化并启动虚拟机
# 创建初始化目录
mkdir -p vagrant_centos;
# 添加镜像,并输入选择自己的虚拟平台,这里选择3,virtualbox
vagrant box add centos/7;
# 进入vagrant目录,查看可用box并初始化启动
cd vagrant_centos;
vagrant box list;
vagrant init centos/7;
vagrant up
# 命令行直接登录虚拟机
vagrant ssh


- ssh登录,先试用命令查看默认ssh配置:vagrant ssh-config

# ssh使用默认的秘钥登录
# -p 2222 指定端口
# vagrant 登录角色
# 127.0.0.1 虚拟机IP
# -i 指定秘钥
ssh -p 2222 vagrant@127.0.0.1 -i /Users/growingio/developments/vagrant_centos/.vagrant/machines/default/virtualbox/private_key
- 常用启停管理命令
启动:vagrant up
停止:vagrant halt
暂停:vagrant suspend
恢复:vagrant resume
重启:vagrant reload
销毁:vagrant destroy
共享目录
- 基础共享目录
# 项目虚拟机所在的目录就是默认的共享目录,不过文件的共享需要虚拟机重启
mkdir test
echo "This is a test shared file." > test/file;


- 自定义共享目录
需要先安装virtualbox guest addtions,否则会报错mount: unknown filesystem type ‘vboxsf’
- ubuntu系统处理方案
# 进入虚拟机
vagrant ssh
sudo apt-get update;
sudo apt-get install virtualbox-guest-utils;
- Mac处理方案
# 进入虚拟机
vagrant ssh
sudo yum update -y;
sudo yum install gcc kernel-devel -y;
# 关闭虚拟机
vagrant halt
# 到http://download.virtualbox.org/virtualbox 最新版本目录下下载 MacOSVBoxGuestAdditions.iso文件
# 按如图步骤添加软驱,在弹出框选择 VBoxGuestAdditions.iso
# 启动虚拟机并登陆
vagrant up;
vagrant ssh;
# 切换到root
sudo su - root;
mkdir -p /media/cdrom;
# 查看软驱列表并挂载,注意软驱名字
lsscsi;
mount /dev/sr0 /media/cdrom;
# 安装扩展包
cd /media/cdrom;
sudo ./VBoxLinuxAdditions.run;


处理完成之后便可以设置共享了
# Vagrantfile文件定位到config.vm.synced_folder所在行,编辑信息
# ../data 本机目录
# /vagrant_data 虚拟机目录
# 创建以及权限
config.vm.synced_folder "../data", "/vagrant_data", create:true, owner:"root", group:"root"
# vagrant重启机器
vagrant reload

3. 配置网络
私有网络:需要与本机网络位于不同网段
公有网络:需要与本机网络位于同一网段
配置私有网络
- 修改文件Vagrantfile,将config.vm.network "private_network"这一行修改为自己希望使用的IP
- 重启虚拟机
vagrant reload

- 网络通畅测试与ssh登录

配置公有网络
- 修改文件Vagrantfile,将config.vm.network "public_network"取消注释,如果需要静态IP,需要与本地电脑同网段。
- 重启虚拟机
vagrant reload

- 网络通畅测试与ssh登录

4. 打包box与添加box
打包box
# 进入项目目录启动虚拟机
vagrant up
# 切换root,修改语言环境
vagrant ssh
sudo su - root
echo 'LANG="en_US.UTF-8"' > /etc/sysconfig/i18n
# 并删除rules文件(打包布置的时候以防网络冲突)
ls /etc/udev/rules.d/*
sudo rm -f /etc/udev/rules.d/60-vboxadd.rules
exit
# 打包虚拟机为box文件
vagrant package

添加box
# 添加打包后的.box文件到box列表
# hzhang/centos7 为自定义的box名称
# package.box 为要添加的box文件
vagrant box add hzhang/centos7 package.box
# 查看box列表
vagrant box list

使用打包的box
# 创建新的项目目录
cd ..; mkdir vagrant_hzhang; cd vagrant_hzhang;
# 使用刚从文件导出的box初始化项目
vagrant init hzhang/centos7;
# 启动
vagrant up
#


5. 多主机
# 修改Vagrantfile文件,定义多虚拟机
config.vm.define "hadoop101" do |hadoop101|
end
config.vm.define "hadoop102" do |hadoop102|
end
config.vm.define "hadoop103" do |hadoop103|
end
# 查看所有虚拟机状态
vagrant status
# 启动虚拟机,vagrant up启动所有虚拟机,vagrant up [NAME]启动指定名称虚拟机。
vagrant up

多主机的网络配置
# 修改Vagrantfile文件,定义多虚拟机的私有网络,公有网络参考单机公有网络的配置,将如下配置替换修改即可
config.vm.define "hadoop101" do |hadoop101|
hadoop101.vm.network "private_network", ip: "192.168.2.101"
end
config.vm.define "hadoop102" do |hadoop102|
hadoop102.vm.network "private_network", ip: "192.168.2.102"
end
config.vm.define "hadoop103" do |hadoop103|
hadoop103.vm.network "private_network", ip: "192.168.2.103"
end


多主机其他设置
# 如:
# 定义hadoop101机器
config.vm.define "hadoop101" do |hadoop101|
# 主机网络
hadoop101.vm.network "private_network", ip: "192.168.2.101"
# 主机名
hadoop101.vm.hostname = "hadoop101"
# 同步目录, 本地项目目录下hadoop101_data到虚拟机/vagrant
hadoop101.vm.synced_folder "hadoop101_data", "/vagrant", create:true, owner:"root", group:"root"
end

Vagrant+VirtualBox虚拟环境的更多相关文章
- 快速打造跨平台开发环境 vagrant + virtualbox + box
工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电 ...
- Vagrant+virtualBox+pycham+python环境的安装及配置
概要: 通过Vagrant,virtualBox安装配置,把virtualBox虚拟机的linux项目映射windows本地项目中,在windows的pycharm工具中开发用python语言开发项目 ...
- Vagrant 创建虚拟环境
1. 添加box vagrant box add --name centos6.8/cms boxname.box 2.初始化admin环境 vagrant init centos6.8/cms ad ...
- Linux vagrant+virtualbox环境搭建步骤
Linux vagrant+virtualbox环境搭建步骤 Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用. 我们可 ...
- [技术博客] 利用Vagrant+virtualbox在windows下进行linux开发
目录 加速box安装的方法 root账户登录 换源教程 安装rvm 访问rails server RubyMine连接虚拟机上的解释器 作者:庄廓然 在windows下进行linux开发:利用Vagr ...
- golang开发:(一)开发环境搭建vagrant+VirtualBox
开发环境介绍 不管何种开发语言,目前用的比较多的开发环境基本就是Vagrant+VirtualBox搭建的虚拟开发环境,这种开发环境的好处就是一次搭建处处可用,各个平台和系统都可以使用.开发团队中,可 ...
- LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04
工作一直用的是别人打包好的虚拟机开发环境,感觉确实很酷.所以准备自己配个开发环境,为之后自己开发一些有趣的东西做准备. ok,开始~~~ 一.安装软件 vagrant和virtualbox 此处需注意 ...
- 在windows下进行linux开发:利用Vagrant+virtualbox(ShowDoc与mp3dish的作者)
1,介绍Vagrant 我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,redis等等.出于个人使用习惯,可能我们还是比较习惯用windows.虽然说在wind ...
- windows(64位)下用vagrant+virtualbox 管理虚拟机具体解释
windows下安装(64位) vagrant 跟 vituriebox http://blog.smdcn.net/article/1308.html Host: 127.0.0.1 Port: 2 ...
随机推荐
- TCGA简易下载工具 SangerBox
下载地址:http://sangerbox.com/ https://shengxin.ren/article/208 Understanding TCGA mRNA Level3 analysis ...
- 【caffe编译】 fatal error: hdf5.h: 没有那个文件或目录
src/caffe/layers/hdf5_output_layer.cpp:3:18: fatal error: hdf5.h: 没有那个文件或目录 查找文件 locate hdf5.h 修改Mak ...
- SQL和PL/SQL的区别
SQL和PL/SQL的区别 1. SQL是结构化查询语言,比较接近自然语言,使用SQL,只需要说干什么,不需要说怎么干.由数据定义语言.数据操纵语言.数据控制语言构成,它不面向过程,即前一条语句与后一 ...
- vim常用命令整理
#创建文件 vim test.txt vi test.txt touch test.txt #在vim中要想退出,先按[esc],再输入如下命令 [:wq]保存并退出 [:q]退出,未修改 [:q!] ...
- Linux下多网卡绑定bond0及模式
Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但 ...
- sqlException 使用relace 替换单引号
我们从前端输入数据的时候,可能会输入一些 单引号 ,的字符 导致直接进行执行sql 语句保存的时候出现错误 如: 输入的有 单引号 保存按钮小代码 <asp:Button ID="bt ...
- 在RedisTemplate中使用scan代替keys指令
keys * 这个命令千万别在生产环境乱用.特别是数据庞大的情况下.因为Keys会引发Redis锁,并且增加Redis的CPU占用.很多公司的运维都是禁止了这个命令的 当需要扫描key,匹配出自己需要 ...
- python selenium爬虫工具
今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接 1.需要一个全局的set([])集合来保存抓取的url地址 2.由于现在单页面 ...
- 【华为云实战开发】10.经典的C++项目怎么在云端开发?【华为云技术分享】
1 概述 1.1 文章目的 本文主要想为研发C++项目的企业或个人提供上云指导,通过本文中的示例项目 “音频解析器”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管理的操作指导,覆盖软 ...
- 获取html 中的内容 将前台的数据获取到后台 用 jquery 生成一个 form表单 提交数据
使用js创建一个form表单 ,使用post上传到后台中 下面是代码.在获取html内容的时候使用了js节点来获取内容. parent:父节点.上一级的节点 siblings:兄弟节点.同一级别的节点 ...