vagrant使用

author author     2022-09-23     299

关键词:


## 安装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下安装了ruby​​1.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命令失... 查看详情