Vagrant (2) —— 基本安装与配置(下)

摘要

基本安装与配置

版本

Vagrant版本: 1.8.1


内容

预置

我们可以通SSH登录然后安装一个web服务器,但是这样每个使用Vagrant的人都需要做同样的事情。为了解决这个问题,Vagrant为我们提供了自动预置的功能,当vagrant up执行时Vagrant会为我们自动安装配置好的软件,这样我们就能够重复创建多个具有相同软件配置的客户机了。

安装APACHE

我们为基项目安装APACHE,需要做的只是在Vagrantfile相同的目录下创建一个名为bootstrape.sh的shell脚本:

#!/usr/bin/env bash

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi

然后我们让Vagrant在启动的时候执行这个脚本,我们需要修改Vagrantfile文件

Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision :shell, path: "bootstrap.sh"
end

这里起作用的就是config.vm.provision配置。

预置

如果Vagrant vm正在运行,我们可以执行

vagrant reload --provision

来重启vm,同时reload会指示Vagrant重新加载预置信息,如果只是简单重启,则不会重新加载预置,因为Vagrant只会在第一次启动时做这件事。

当Vagrant启动成功后,我们可以先

vagrant ssh

登录该vm,然后运行

vagrant@precise64:~$ wget -qO- 127.0.0.1

测试APACHE是否安装成功。

网络

Vagrant的网络特性让我们可以通过主机访问客户机

端口转发

修改Vagrantfile

Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, guest: 80, host: 4567
end

这样可以通过端口4567,在主机上访问客户机80端口,执行以下命令

$ wget -qO- 127.0.0.1:4567

测试能否获得客户机上APACHE的响应。

分享

注册HashiCorp's Atlas账号

登陆Atlas

$ vagrant login
Username or Email: mitchellh
Password (will be hidden):
You are now logged in!

分享

登录后执行命令

$ vagrant share
...
==> default: Your Vagrant Share is running!
==> default: URL: http://frosty-weasel-0857.vagrantshare.com
...

注意frosty-weasel-0857是临时创建的url,可以通过CTRL+C来终止分享对话,如果再次分享统一镜像,这个临时url也会发生改变。

关闭

关闭分为三种:suspend挂起,halt中止和destroy销毁。

  • Suspend挂起

    通过执行命令vagrant suspend来保持当前运行的状态,然后停止它。这个方法的好处是快速,通常只需要5-10秒的时间来启动,不好的是挂起的这个vm仍然占用着磁盘空间,需要更多的磁盘空间来保持vm内存里面的状态。

  • Halt中止

    通过执行命令vagrant halt来停止客户机,关闭客户机的电源。这样做的好处是可以干净的关闭客户机,但又保持了磁盘上的内容。不好的是要花更多的时间进行冷启动,当然客户机还占用着磁盘空间。

  • Destroy销毁

    通过执行命令vagrant destroy来销毁客户机,关闭客户机的电源。同时也会删除客户机上的硬盘。这种方式的好处是,客户机上没有任何残留,磁盘空间和内存空间都会被主机回收。不好的是再次启动的时候,Vagrant会要重新做所有的事情,比如重新导入vm和重新预置。

更多内容请参考https://www.vagrantup.com/docs/getting-started/


参考

官方下载

vagrantup.com: INSTALLING VAGRANT

Vagrant (2) —— 基本安装与配置(下)的更多相关文章

  1. Vagrant (1) —— 基本安装与配置(上)

    Vagrant (1) -- 基本安装与配置(上) 摘要 基本安装与配置 版本 Vagrant版本: 1.8.1 内容 启动运行 $ vagrant init hashicorp/precise64 ...

  2. TortoiseGit 安装与配置

    2. TortoiseGit安装与配置 标签: TortoiseGit安装配置Windows 2014-12-01 15:25 135739人阅读 评论(10) 收藏 举报 .embody{ padd ...

  3. vagrant在windows下的安装和配置

    记录一下安装和配置过程中的一些坑步骤一分别下载vagrant和VirtualBox,我这里下载的是vagrant_1.9.1.msi 和 VirtualBox-5.1.14-112924-Win.ex ...

  4. vagrant在windows下的安装和配置(一)

    记录一下安装和配置过程中的一些坑步骤一分别下载vagrant和VirtualBox,我这里下载的是vagrant_1.9.1.msi 和 VirtualBox-5.1.14-112924-Win.ex ...

  5. vagrant在windows下的安装和配置(二)

    在(一)中安装和配置好后 框框中的信息是登录vagrant up后的系统用的 我这里登录用的是xshell-----下载一个xshell然后安装 打开xshell 按确定之后生成一个新的会话,然后登录 ...

  6. mac 下JDK 与 tomcat 的安装与配置

    一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...

  7. win7下IIS的安装和配置 图文教程

    转自   http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功.在博客里记录一下,给需要的 ...

  8. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  9. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

随机推荐

  1. vc2010 属性值无效 灾难性故障 解决方法

    原文链接: http://blog.csdn.net/enterlly/article/details/8739281 说明: 我遇到这个问题是这样的,在为某个类添加消息时出现的.因为该类不在此工程的 ...

  2. stm32定时器PWM模式和输出比较模式

    pwm模式是输出比较模式的一种特例,包含于输出比较模式中 /** @defgroup TIM_Output_Compare_and_PWM_modes * @{ */ #define TIM_OCMo ...

  3. SNF.Net 快速开发平台Spring.Net.Framework 诞生的由来与规划

    没有快速开发平台的时候只能感慨自己曾经浪费了那么多精力在拖拽控件上,总写重复的代码,却花了很多精力且不能体现自己的价值.SNF快速开发平台能把你解放出来,让你有更多的时间参与到核心业务逻辑中去,让你有 ...

  4. react-navigation使用技巧

      因为react-navigation之前存在的问题相对较多,本文更新会稍慢,而且,我现在项目使用的是基于它封装的react-native-router-fluxV4版本,现在也推荐给大家使用.在下 ...

  5. Memory Leak检測神器--LeakCanary初探

      在之前的文章Android内存泄露的几种情形中提到过在开发中常见的内存泄露问题,可是过于草率.因为刚开年,工作还没正式展开,就看了一下Github开源大户Square的LeakCanary,并用公 ...

  6. zabbix 通过自定义key完成网卡监控

    创建执行脚本: # cat /etc/zabbix/monitor_scripts/network.sh #!/bin/bash #set -x usage() { echo "Useage ...

  7. 转:显示技术中的帧、帧数、帧率、 FPS

    在视频领域,电影.电视.数字视频等可视为随时间连续变换的许多张画面,而“帧( Frame)”是指每一张画面.而我们日常口语习惯或者说不严谨的交流中,通常对于帧数( Frames)与帧率( Frame ...

  8. .NET MVC+ EF+通用存储过程实现增删改功能以及使用事物处理

    引摘: 1.EF对事务进行了封装:无论何时执行任何涉及Create,Update或Delete的查询,都会默认创建事务.当DbContext类上的SaveChanges()方法被调用时,事务就会提交, ...

  9. Unity3d中默认函数调用顺序(MonoBehaviour)

    首先要明确的是MonoBehaviour是每个脚本的基类.每个Javascript脚本自动继承MonoBehaviour.使用C#或Boo时,需要显式继承MonoBehaviour.         ...

  10. iOS开发之蓝牙

    // //  ViewController.m //  13-蓝牙 // //  Created by hongqiangli on 2017/7/21. //  Copyright © 李洪强. A ...