关于虚拟机模板

想用vagrant搭建hadoop集群,要完成以下准备工作:

  1. 三个虚拟机实例操作系统都是CentOS7的server版;
  2. 每个实例都要安装同样的应用、关闭防火墙、关闭swap等;

    今天就来做个模板,用此模板创建好的虚拟机都已经完成了上述操作;

关于vagrant的安装和基本操作,请参考《Mac下vagrant从安装到体验》

环境信息

  1. 操作系统:macOS Mojave 10.14.6
  2. Vagrant:2.2.5
  3. VirtualBox:6.0.10

创建实例并完成个性化设置

  1. 创建一个centos7的实例,以此实例来做模板,新建个目录,在里面执行命令vagrant init centos/7;
  2. 再执行命令vagrant up启动实例;
  3. 执行命令vagrant ssh进入虚拟机,默认密码是vagrant,另外root账号的密码也是vagrant;
  4. 登录之后,然后按照自己的需要去操作吧,例如关闭防火墙、安装JDK、关闭swap等;
  5. 为了能用ssh工具来远程连接虚拟机,需要修改/etc/ssh/sshd_config文件,将和的值设置如下:
PermitRootLogin yes
PasswordAuthentication yes

以上的设置已经满足我个人的需要了,您可以按照自己的要求来做;

把实例做成模板

  1. 退出虚拟机;
  2. 在Vagrantfile文件所在目录执行vagrant halt命令将当前虚拟机停止;
  3. 执行vagrant package命令将当前虚拟机作为文件导出,名为package.box:
zhaoqin@CN0014005932:~/vm/template$ vagrant package
==> default: Attempting graceful shutdown of VM...
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: /Users/zhaoqin/vm/template/package.box
zhaoqin@CN0014005932:~/vm/template$ ls
Vagrantfile package.box
  1. 接下来将这个导出的package.box文件加入本地box仓库:
vagrant box add --name my-c7-template ./package.box

上述命令执行成功后,可以在本地box列表中见到名为my-c7-template的box:

zhaoqin@CN0014005932:~/vm/template$ vagrant box add --name my-c7-template ./package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'my-c7-template' (v0) for provider:
box: Unpacking necessary files from: file:///Users/zhaoqin/vm/template/package.box
==> box: Successfully added box 'my-c7-template' (v0) for 'virtualbox'!
zhaoqin@CN0014005932:~/vm/template$ vagrant box list
centos/7 (virtualbox, 1905.1)
customize-c7 (virtualbox, 0)
my-c7-template (virtualbox, 0)

注意:执行vagrant box add命令的时候,最后一个参数指明了box文件的位置,我这里加了"./"指明是当前目录,这个"./"一定不能省掉,否则很有可能去找到了其他目录下的package.box文件

模板制作已经完成,接下来验证这个实例;

验证

  1. 新建个目录,在里面执行命令vagrant init my-c7-template;
  2. 打开新生成的Vagrantfile文件,增加以下配置,作用是将虚拟机网络类型改成私有网络并固定IP地址:
config.vm.network "private_network", ip: "192.168.33.10"
  1. 再执行命令vagrant up启动实例;
  2. 由于模板里已经设置了ssh,允许以root账号远程ssh登录,所以这次ssh客户端登录试试,如下图,可以顺利登录成功:

  3. 您也可以检查其他的设置是否已经生效;

以上就是个性化虚拟机模板的制作过程,借助此功能可以高效的创建虚拟机实例,希望本文能够给您一些参考。

Vagrant定制个性化CentOS7虚拟机模板的更多相关文章

  1. 在XenCenter6.2中构建CentOS7虚拟机的启动错误

    在XenCenter6.2中创建CentOS7虚拟机时,发现系统并没有提供CentOS7 64bit的模板,只有CentOS6 64bit模板.如果采用CentOS6作为其模板来创建CentOS7虚拟 ...

  2. 华为云计算IE面试笔记-桌面云中的用户组、虚拟机模板、模板虚拟机、虚拟机组和桌面组的关系及区别。发放完整复制和链接克隆虚拟机时,步骤有什么区别,要怎么选择桌面组?

    概念解释: 模板虚拟机:FC上创建的裸虚拟机,用于制作不同类型的虚拟机模板. 虚拟机模板:用于创建虚拟机的模板,对裸虚拟机(模板虚拟机)进行配置或自定义安装软件后,转为模板.虚拟机模板类型有完整复制, ...

  3. [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  4. [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  5. [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  6. 在 virtualbox 的 centos7 虚拟机中安装增强工具

    在 virtualbox 的 centos7 虚拟机中安装增强工具 centos7 刚刚安装完成时,直接安装 virtualbox 增强工具会出错,需要先把 gcc / kernel-devel / ...

  7. 创建并使用Windows Azure虚拟机模板

    在现实的IaaS应用中,往往会创建自己的虚拟机映像模板,以满足快速应用部署的目标,如预先配置好某些应用.管理与监控管理等. 1.登录到Windows Azure Dashboard中创建一个做为模板的 ...

  8. Python - 定制pattern的string模板(template) 具体解释

    定制pattern的string模板(template) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 ...

  9. Hadoop(一)Centos7虚拟机网络配置

    Centos7虚拟机网络配置(桥接模式) 一 VirtualBox提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式). 1 桥接模式(br ...

随机推荐

  1. codeforces 876 D. Sorting the Coins(线段树(不用线段树写也行线段树写比较装逼))

    题目链接:http://codeforces.com/contest/876/problem/D 题解:一道简单的类似模拟的题目.其实就是看右边连出来有多少连续不需要换的假设位置为pos只要找pos- ...

  2. ZOJ-3964 Yet Another Game of Stones

    Yet Another Game of Stones 题意: Alice 和 Bob 在进行取石子游戏, 现在一共有n堆石子, 每堆石头有ai个, 然后每堆石头有一个bi属性, 如果bi == 0, ...

  3. hdu 5902 GCD is Funny

    Problem Description Alex has invented a new game for fun. There are n integers at a board and he per ...

  4. codeforces E. Trains and Statistic(线段树+dp)

    题目链接:http://codeforces.com/contest/675/problem/E 题意:你可以从第 i 个车站到 [i + 1, a[i]] 之间的车站花一张票.p[i][j]表示从 ...

  5. SpringCloud Feign 之 Fallback初体验

    SpringCloud Feign 之 Fallback初体验 在微服务框架SpringCloud中,Feign是其中非常重要且常用的组件.Feign是声明式,模板化的HTTP客户端,可以帮助我们更方 ...

  6. FreeSql (三十五)CodeFirst 自定义特性

    比如项目内已经使用了其它 orm,如 efcore,这样意味着实体中可能存在 [Key],但它与 FreeSql [Column(IsPrimary = true] 不同. Q: FreeSql 实体 ...

  7. Winform中实现ZedGraph的多条Y轴(附源码下载)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  8. Linux 中 Xampp 的 https 安全证书配置

    博客地址:http://www.moonxy.com 一.前言 HTTP 协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的 HTTP 的 ...

  9. MYSQL之概念基础篇

    1数据库概述 1.1 数据管理技术的产生和发展 数据库技术是应数据库管理任务的需要而产生的.20世纪50年代中期以前,计算机主要是用于科学计算.当时的硬件状况是,外存只有纸带.卡片.磁带,没有磁盘等可 ...

  10. c++异常处理函数

    注意: throw 抛出异常,catch 捕获异常,try 尝试捕获异常 catch 中的参数类型要和throw 抛出的数据类型一致 try{    //可能抛出异常的语句}catch (异常类型1) ...