文档章节

vagrant virtualbox git

卡卡东
 卡卡东
发布于 2016/03/06 22:06
字数 2200
阅读 28
收藏 0

<p>

    首先安装基础工具Vagrant、VirtualBox、Git:参考http://docs.docker.io/en/latest/installation/windows/


Install virtualbox from https://www.virtualbox.org – or follow this tutorial

Install vagrant from http://www.vagrantup.com – or follow this tutorial

Install git with ssh from http://git-scm.com/downloads – or follow this tutorial

We recommend having at least 2Gb of free disk space and 2Gb of RAM (or more).


简单点就直接下载官方封装好的box:


Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box

Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box


单独下载的box放到docker根目录,


vagrant init ubuntu precise64.box

vagrant box add base http://files.vagrantup.com/precise64.box

mkdir vagrant

vagrant init

vagrant up


要是愿意自己动手也可以在VirtualBox里建好虚拟机,然后通过


vagrant package –output ubuntu.box –base vagrant-ubuntu


命令,导出一个自定义的box。


以下为vagrant用法说明:


Usage: vagrant [-v] [-h] command [

</p>

<args>

    ]


-v, –version &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Print the version and exit.

-h, –help &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print this help.


Available subcommands:

box &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;manages boxes: installation, removal, etc.

destroy &nbsp; &nbsp; &nbsp;stops and deletes all traces of the vagrant machine

halt &nbsp; &nbsp; &nbsp; &nbsp; stops the vagrant machine

help &nbsp; &nbsp; &nbsp; &nbsp; shows the help for a subcommand

init &nbsp; &nbsp; &nbsp; &nbsp; initializes a new Vagrant environment by creating a Vagrantfile

package &nbsp; &nbsp; &nbsp;packages a running vagrant environment into a box

plugin &nbsp; &nbsp; &nbsp; manages plugins: install, uninstall, update, etc.

provision &nbsp; &nbsp;provisions the vagrant machine

reload &nbsp; &nbsp; &nbsp; restarts vagrant machine, loads new Vagrantfile configuration

resume &nbsp; &nbsp; &nbsp; resume a suspended vagrant machine

ssh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;connects to machine via SSH

ssh-config &nbsp; outputs OpenSSH valid configuration to connect to the machine

status &nbsp; &nbsp; &nbsp; outputs status of the vagrant machine

suspend &nbsp; &nbsp; &nbsp;suspends the machine

up &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; starts and provisions the vagrant environment


For help on any individual command run `vagrant COMMAND -h`


vagrant的官方网站:http://www.vagrantup.com/


vagrant的一些镜像:http://www.vagrantbox.es/ 各种发行版的linux。


虚拟机启动后,就可以ssh连接,虚拟机的22端口默认映射到了本机的2222端口,默认的用户名和密码都是vagrant,初始化就完成了。


 


记一下vagrant的一些常用命令。

vagrant up &nbsp; #开机

vagrant halt #关机

vagrant reload #重新启动,主要用于重新载入配置文件

关于vagrant的配置文件vagrantfile,vagrantfile在vagrant目录里面。配置基础开发环境主要是两个方面,一个是config.vm.forward_port选项,主要用于端口映射,初始的映射了22到本机的2222端口,我们可以把虚拟机的80端口映射到本机的4470上,然后再虚拟机里配好环境(例如lnmp)以后访问127.0.0.1:4470就是访问虚拟机的80了,非常方便。

config.vm.forward_port 8080, 4470

config.vm.forward_port 80, 4471

config.vm.forward_port 3306, 3307

还有一个就是配置一下共享目录,做到本机开发,虚拟机测试。


# Share an additional folder to the guest VM. The first argument is

# an identifier, the second is the path on the guest to mount the

# folder, and the third is the path on the host to the actual folder.

 &nbsp; config.vm.share_folder &quot;v-data&quot;, &quot;/data&quot;, &quot;data&quot; &nbsp; #把这一行的注释去掉,如上所说,第一个是个标志,第二个是你虚拟机里挂载的目录,第三个就是物理机的目录了,这个目录是777的,可以随意修改删除,所有操作在虚拟机和本机都是同步的。

网络配置:


Vagrant的网络有三种模式


1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:


1config.vm.network :forwarded_port, guest: 80, host: 8080

guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。


2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:


1config.vm.network :private_network, ip: &quot;192.168.1.104&quot;

192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可


3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:


1config.vm.network :public_network

目录映射:


既然是开发环境,那么开发工作肯定还是需要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就好了,不然就本末倒置了,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。


默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如


1ln -fs /vagrant/wwwroot /var/www

来进行目录映射,当然,从自动化配置的角度,能不进系统就不需要进系统,所以在Vagrant也可以进行目录映射的操作:


1config.vm.synced_folder &quot;wwwroot/&quot;, &quot;/var/www&quot;

前面的参数 “wwwroot/” &nbsp;表示的是本地的路径,这里使用对于工作目录的相对路径,这里也可以使用绝对路径,比如: “d:/www/”


后面的参数 “/var/www” 表示虚拟机中对应映射的目录。


运行脚本:



虽然不是必须,但是如果有需要在启动时运行一些脚本(环境的安装或者有些服务的启动需要在完成目录映射之后进行),可以编辑脚本,类似如下(摘自Vagrant Document):


1#!/usr/bin/env bash

2

3apt-get update

4apt-get install -y apache2

5rm -rf /var/www

6ln -fs /vagrant /var/www

保存在和Vagrantfile相同目录,文件名自取(如 boot.sh),然后在Vagrantfile中添加:


1config.vm.provision :shell, :path =&gt; &quot;boot.sh&quot;

当初次使用基本的设置都完成则之后,则可以使用 vagrant up 启动虚拟机


01Bringing machine &#39;default&#39; up with &#39;virtualbox&#39; provider...

02[default] Setting the name of the VM...

03[default] Clearing any previously set forwarded ports...

04[default] Creating shared folders metadata...

05[default] Clearing any previously set network interfaces...

06[default] Preparing network interfaces based on configuration...

07[default] You are trying to forward to privileged ports (ports &lt; = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case

08the port forwarding doesn&#39;t work. If any problems occur, please try a port higher than 1024.

09[default] Forwarding ports...

10[default] -- 22 =&gt; <strong>2222</strong> (adapter 1)

11[default] -- 80 =&gt; 8080 (adapter 1)

12[default] Booting VM...

13[default] Waiting for VM to boot. This can take a few minutes.

14[default] VM booted and ready for use!

15[default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM.

16

17Guest Additions Version: 4.1.18

18VirtualBox Version: 4.2

19[default] Mounting shared folders...

20[default] -- /var/www

21[default] -- /vagrant

22[default] Running provisioner: shell...

虚拟机启动之后则可以通过 vagrant ssh 联入虚拟机进行进一步的环境配置,或者软件安装相关的工作,在Windows系统下,并不能直接通过 vagrant ssh 连到虚拟机,需要使用 Putty,Xshell 等第三方工具进行连接


连接的IP和端口根据网络环境配置的不同有所不同,如果是默认使用端口映射的话,一般是连接 本地的2222端口。


登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant


注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。


登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题


在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:


vagrant up (启动虚拟机)

vagrant halt (关闭虚拟机——对应就是关机)

vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)

vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)

vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)


当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box,


vagrant package --output NAME --vagrantfile FILE

注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:


sudo rm -f /etc/udev/rule.d/70-persistent-net.rules

制作完成之后直接将box文件拿到其他计算机上配置即可使用。

</args>

http://chenpeng.info/html/1951

© 著作权归作者所有

下一篇: gifsicle
卡卡东
粉丝 1
博文 10
码字总数 3016
作品 0
淄博
程序员
私信 提问
vagrant+virtualbox使用小记

virtualbox是类似vmware workstation的虚拟机软件,而且是开源的,支持多平台,在win10上也能顺畅运行。win10上安装vagrant能在终端xshell上像linux一样命令行操作,也便于开发环境的切换,很...

hiwill
2018/09/16
125
2
vagrant import虚拟机失败

我用vagrant1.7.4配置Linux虚拟机在Win10上,provision是Virtualbox 5.0.4,加载虚拟机时,terminal提示错误如下: vagrant up Bringing machine 'default' up with 'virtualbox' provider.......

yangkf
2015/09/26
1K
0
Vagrant 入门及基于 Vagrant 的 LAMP 开发环境搭建

[vagrant-homepage]: https://www.vagrantup.com "Vagrant homepage"[vagrant-docs]: https://www.vagrantup.com/docs "Vagrant docs"[vagrant-box]: https://atlas.hashicorp.com/boxes/sea......

whoru
2017/03/06
193
0
Flarum 安装( Vagrant方式)

1. 安装 Vagrant 和 VirtualBox 这两个没有先后顺序,先安装谁都行。 Vagrant https://www.vagrantup.com VirtualBox https://www.virtualbox.org 下载和系统相对应的版本,如果是在 Win8 系...

coffeescript
2015/06/11
1K
0
Windows 10 + Vagrant + Virtualbox + Homestead

Best Answer — Asker's Choice Eldair — 3,475 PointsPosted 1 month ago Hello, New solution: Install Virtualbox 5 and Vagrant 1.7.4 Comment line 17: config.vm.network :privatene......

炫炎
2015/09/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部