关于虚拟机模板

想用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. Springboot学习与mybatis逆向生成工具

    最近H2数据库越用越觉得方便,在不同办公处无缝继续demo的感觉就是爽.   今天接上一篇Springboot简洁整合mybatis,补上sts(即eclipse)使用mybatis generato ...

  2. Python 基础 (三)

    字典排序 dict = {'a':1,'c':3,'b':2} 字典没有sort方法,可使用sorted排序,默认通过key排序 dict = sorted(dict),print(dict)key的 ...

  3. 【百度之星】【思维】hdu 6724Totori's Switching Game

    思维题,最后只要判断每个点的度数>=k即可. #pragma comment(linker, "/STACK:1024000000,1024000000") #pragma ...

  4. hdu 1269 迷宫城堡(trajan判环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:略 题解:trajan模版直接求强连通分量. #include <iostream& ...

  5. 数论---GCD(最大公约数)+LCM(最小公倍数)

    #include<bits/stdc++.h> #define ll long long using namespace std; /* ll gcd(ll a, ll b) {//非递归 ...

  6. Django+Nginx概念安装和使用–使用Django建立你的第一个网站

    一 前记 最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的.在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新 ...

  7. 史无前例的RNN讲解

    这篇博客不是一篇讲解原理的博客,这篇博客主要讲解time_steps,如果这篇博客没有让你明白time_steps,那么算我无能. 我曾翻阅各大网站,各大博客,他们的对RNN中time_steps的讲 ...

  8. Unity3D_UGUI与NGUI的区别与优缺点

    1. NGUI与UGUI的区别 1) UGUI的Canvas 有世界坐标和屏幕坐标; 2) UGUI的Image可以使用material; 3) UGUI通过Mask来裁剪,而NGUI通过Panel的 ...

  9. Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  10. jquery多级树形下拉菜单

    效果图: 使用方法 (1)引入 jQuery 包,下载地址 (2)引入 zTree 包,下载地址 (3)引入 tree-select.js (4)$("#id").treeSele ...