关键词:
## 安装virtual box:
```bash
https://www.virtualbox.org/
```
## 下载vagrant 镜像:
```bash
#### 查找并下载官方的box镜像:
https://app.vagrantup.com/boxes/search
#### 还有这个网址里面也有很多:
http://www.vagrantbox.es/
#### 我用了这个镜像centos6.5 x86_64:
https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
```
## 下载并安装vagrant(根据版本不同 自行选择安装):
```bash
https://www.vagrantup.com/downloads.html
```
## 初始化创建文件 和 Vagrantfile文件:
```bash
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
### 示例:
mkdir -p /opt/box/
cd /opt/box/
wget https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
### 添加一个box到系统并命名为centos65:
vagrant box add centos65 centos65-x86_64-20140116.box
### 初始化系统:
vagrant init centos65
### 启动虚拟机:
vagrant up
### 关闭虚拟机:
vagrant halt
### 查看虚拟机状态:
vagrant global-status
### 重启虚拟机:
vagrant reload ID
### 登陆系统:
vagrant ssh
** 多看看启动命令 里面会有很多的启动信息 和 关于虚拟机的参数:
```
### 跟宿主机共享目录:
```bash
#### 默认共享:
** 默认和vagrantfile 同目录,启动日志里面也有写:
虚拟机 /vagrant
宿主机 /opt/box
#### 虚拟机所有的配置都在这个文件里面:
vim Vagrantfile
#### 取消默认共享:
config.vm.synced_folder ".","/vagrant",disabled:true
#### 共享自定义目录:
config.vm.synced_folder "/opt/box/tmp","/tmp",owner:"root",group:"root",create:true,
mount_options:["dmode=775","fmode=664"]
#### 重启虚拟机查看挂载:
vagrant reload id
#### 配置选项:
config.vm.synced_folder
"your_folder"(必须) //物理机目录,可以是绝对地址或相对地址,相对地址是指相对与vagrant配置文件所在目录
,"vm_folder(必须)" // 挂载到虚拟机上的目录地址
,create(boolean)--可选 //默认为false,若配置为true,挂载到虚拟机上的目录若不存在则自动创建
,disabled(boolean):--可选 //默认为false,若为true,则禁用该项挂载
,owner(string):‘www‘--可选 //虚拟机系统下文件所有者(确保系统下有该用户,否则会报错),默认为vagrant
,group(string):‘www‘--可选 //虚拟机系统下文件所有组( (确保系统下有该用户组,否则会报错),默认为vagrant
,mount_options(array):["dmode=775","fmode=664"]--可选 dmode配置目录权限,fmode配置文件权限 //默认权限777
,type(string):--可选 //指定文件共享方式,例如:‘nfs‘,vagrant默认根据系统环境选择最佳的文件共享方式
```
## 网络设置:
```bash
#### 私网地址:
config.vm.network "public_network",ip:"192.168.3.100"
#### 公网地址:
config.vm.network "public_network",ip:"192.168.3.100"
config.vm.network "public_network",ip:"192.168.3.28"
```
## 端口设置:
```bash
config.vm.network "forwarded_port",guest:80,host:8089
config.vm.network "forwarded_port",guest:8080,host:9090
```
## 引用外部bash脚本:
```bash
config.vm.provision "shell", path: "master_provision.sh"
```
## 执行命令(provision):
```bash
vagrant provision
```
## 常用命令:
```bash
#### 查看已添加的box:
vagrant box list
#### 删除box :
vagrant box remove your_box_name
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant global-status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机
```
```bash
#### vagrant 视频:
https://ninghao.net/video/1576
```
## 保存镜像成文件 .box:
```bash
#### 1 进入虚拟机里面关闭系统:
sudo su -
init 0
#### 2 确认虚拟机状态变成poweroff(vagrant global-status):
vagrant global-status
id name provider state directory
-------------------------------------------------------------------------
d9fe29b default virtualbox poweroff /opt/box
上面的state 状态已经变成了poweroff 状态
2.1 确认状态:
#### 进入虚拟机目录执行命令(vagrant status ):
rzxdeMacBook-Pro:box root# vagrant status
Current machine states:
default poweroff (virtualbox)
The VM is powered off. To restart the VM, simply run `vagrant up`
#### 3 执行备份命令:
vagrant package --output /opt/centos65_2017.box
```
## vagrantfile 里面执行命令或引用外部脚本:
```bash
#### 执行命令:
config.vm.provision "shell",inline: <<-SHELL
sudo su -
yum install -y htop nload iftop iotop lsof netstat telnet
SHELL
#### 执行脚本:
1.1 编写一个bash 脚本并赋予权限:
vim script.sh
#!/bin/bash
echo "this is vagrant bash " > /tmp/data.log
1.2 在Vagratfile 文件里面加内容,脚本放在和Vagrantfile文件同级:
config.vm.provision "shell", path: "script.sh"
1.3 执行命令:
vagrant provision
1.4 验证结果:
没有啥报错的话,就可以看到 安装信息和bash 脚本运行的结果。 script.sh 这个脚本的运行结果
vagrant ssh
cat /tmp/data.log
```
## 我的配置:
```bash
Vagrant.configure("2") do |config|
# config.vm.hostname = "master01"
#config.ssh.username = "root"
#config.ssh.password = "123456"
config.vm.box = "centos65"
config.vm.synced_folder "/opt/box/tmp","/tmp",owner:"root",group:"root",create:true,mount_options:["dmode=775","fmode=664"]
#config.vm.synced_folder ".","/vagrant",disabled:true
config.vm.network "forwarded_port",guest:80,host:9090
config.vm.network "public_network",ip:"192.168.3.28"
config.vm.provision "shell",inline: <<-SHELL
sudo su -
yum install -y htop nload iftop iotop lsof netstat telnet
SHELL
config.vm.provision "shell", path: "script.sh"
end
```
## 错误大全:
```bash
#### 问题1 :
rzxdeMacBook-Pro:~ root# vagrant package --base centos65 --output /opt/centos65_2017.box
==> centos65: VM not created. Moving on...
#### 解决:
去掉"--base"参数就可以解决。 不明白这个参数的具体意义,可能在多虚拟机环境下可以用的到
```
本文出自 “风满楼” 博客,谢绝转载!
使用vagrant创建虚拟机
关于vagrant,维基百科给出了定义:“Vagrant isan open-sourcesoftware productforbuildingandmaintaining portable virtual developmentenvironments.”,看到了吧,是一个搭建虚拟开发环境的开源软件。下面就来看看vagrant如何搭建的 查看详情
vagrant之使用
1.安装 安装VirtualBox 安装Vagrant2.BOX 下载 http://www.vagrantbox.es/ https://atlas.hashicorp.com/ubuntu/boxes/xenial643.2 两种方式BOX安装 在线 vagrant 查看详情
vagrant简单使用
使用vagrant,需要安装virtualbox和vagrant。具体怎么安装这里就不介绍。 创建一个虚拟机找到一个初始boxvagrant创建虚拟机需要一个box镜像,box镜像可以在https://app.vagrantup.com/boxes/search中查询。例如我们找到了一个ubuntu16.04的镜像... 查看详情
vagrant使用
##安装virtualbox:```bashhttps://www.virtualbox.org/```## 下载vagrant镜像:```bash#### 查找并下载官方的box镜像:https://app.vagrantup.com/boxes/search#### 还有这个网址里面也有很多:http://www.vagrantbox.es/####我用了这个镜像 查看详情
如何在代理环境中使用 vagrant?
】如何在代理环境中使用vagrant?【英文标题】:Howtousevagrantinaproxyenvironment?【发布时间】:2013-11-2106:17:02【问题描述】:我公司的网络正在使用代理。所以当我使用vagrantup时,它显示了一个401权限错误。如何进行一些设置以使用... 查看详情
vagrant使用简介
前言Vagrant是什么??????是一款用来构建虚拟开发环境的工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。Vagrant能做什么?统一开发环境。一次配置打包,统一分发给团队成员,统一团队开发环境,解决诸如“编码问题”... 查看详情
vagrant 不会使用 rbenv ruby 版本
】vagrant不会使用rbenvruby版本【英文标题】:vagrantwillnotuserbenvrubyversion【发布时间】:2013-03-1307:04:07【问题描述】:我正在使用Vagrant盒子:https://dl.dropbox.com/u/14292474/vagrantboxes/precise64-ruby-1.9.3-p194.box它在rbenv下安装了ruby1.9... 查看详情
使用vagrant和ansible
...两个工具配合的很好.这个指南会叙述如何同时配合使用Vagrant和Ansible.如果你对Vagrant还不了解,你应该看看这个文档 thedocumentation.假设你已经安装了Ansible,在Git上检测,运行的也很好, 查看详情
学会使用vagrant
全平台适用Mac win ubuntu centos 1.安装vbox.只是个承载,不用去启动2.下载vagrantbox镜像 .box文件 4用到 http://www.vagrantbox.es/3.下载vagrant win msi https://www.vagran 查看详情
vagrant使用国内镜像安装插件和box镜像(代码片段)
dui前言Vagrant是非常优秀的本地虚拟化管理工具。无奈国内访问速度实在感人。本文分享一些如何使用国内镜像加速的经验,让Vagrant的使用更加爽快。插件镜像Vagrant的插件主要托管在RubyGems仓库,在国内几乎无法访问。万... 查看详情
使用 Vagrant 访问日志文件夹
】使用Vagrant访问日志文件夹【英文标题】:AccesstologfolderwithVagrant【发布时间】:2014-10-1009:56:20【问题描述】:我有一个vagrant文件,它用apache安装了一个盒子。我想使用同步文件夹机制(而不是vagrantssh!)直接在我的主机中访... 查看详情
windows下vagrant的安装使用
vagrant是简便虚拟机操作的一个软件,而使用虚拟机是为了开发环境与生产环境一致(很多开发环境为windows而生产环境为linux),不至于出现在开发环境正常而移步到正式生产环境时出现各种问题,vagrant通过共享文件,可以实现... 查看详情
windows安装使用vagrant(代码片段)
下载:a.virtualbox:https://www.virtualbox.org/wiki/Downloadsb.vagrant:https://www.vagrantup.com/downloads.htmlc.centos7.box:http://cloud.centos.org/centos/7/vagrant/x86_64/images/安装:a.安装virtualboxb.安装vag 查看详情
vagrant里面不能运行docker,怎么回事
以下内容均出自Vagrant作者(MitchellHashimoto)与Docker作者(SolomonHykes)在stackoverflow上面一个问题讨论。在这个问题中,双方阐述了vagrant和docker的特点和使用范围,对于深入理解vagrant和docker很有意义,因此笔者翻译出来,以供大家讨... 查看详情
vagrant+git的使用
...个人用的话没必要上Samba(除非共享给别人),下面使用vagrant+VBox+Git打造一个Django开发测试环境使用软件:Vagrant1.8.6vbox5.1.8git(无所谓版本,当做ssh客户端用了low~~)相关下载地址链接:https://pan.baidu.c 查看详情
如何使用密码保护 vagrant 虚拟盒子?
】如何使用密码保护vagrant虚拟盒子?【英文标题】:Howtoprotectvagrantvirtualboxwithpassword?【发布时间】:2020-08-2822:26:11【问题描述】:我正在使用vagrant向我的客户提供一些API(使用高计算能力)所以我的一些客户希望在他们自己的... 查看详情
使用 vagrant 在桌面环境下运行虚拟机
】使用vagrant在桌面环境下运行虚拟机【英文标题】:Usingvagranttorunvirtualmachineswithdesktopenvironment【发布时间】:2013-09-2313:26:45【问题描述】:我公司的开发环境是基于虚拟机的,运行在VirtualBox上。我们想更进一步,使用Vagrant的功... 查看详情
使用 Vagrant 配置 Windows VM 无法执行远程 WinRM 命令
】使用Vagrant配置WindowsVM无法执行远程WinRM命令【英文标题】:ProvisioningWindowsVMwithVagrantcannotexecuteremoteWinRMcommands【发布时间】:2021-11-2714:37:12【问题描述】:我正在尝试在现有的Vagrant机器上安装一些基本工具,但我的shell命令失... 查看详情