本文来自于【阿里云官方镜像站:https://developer.aliyun.com/mirror/?utm_content=g_1000307095 】

原文链接:https://developer.aliyun.com/article/752728?spm=a2c6h.12873581.0.0.54c47e46mLfYep

镜像下载、域名解析、时间同步请点击阿里巴巴开源镜像站

背景信息

本文描述以Linux系统的服务器为例,Windows系统的操作请参见Packer官方文档。

一、安装Packer

1、连接并登录到Linux服务器。登录ECS Linux实例服务器,请参见使用用户名密码验证连接Linux实例。

2、执行命令cd /usr/local/bin进入/usr/local/bin目录。

cd /usr/local/bin

说明:/usr/local/bin目录为环境变量目录,您可以将Packer安装到该目录下或其他已添加到环境变量的目录下。

3、执行命令wget https://releases.hashicorp.com/packer/1.1.1/packer_1.1.1_linux_amd64.zip获取Packer安装包。访问Packer下载页面,获取其他版本Packer安装包。

wget https://releases.hashicorp.com/packer/1.1.1/packer_1.1.1_linux_amd64.zip

4、执行命令unzip packer_1.1.1_linux_amd64.zip解压文件。

unzip packer_1.1.1_linux_amd64.zip

5、执行命令packer -v验证Packer安装状态。

packer -v
若Linux服务器返回Packer版本号,表示您已正确安装Packer。若Linux服务器提示command not found表示Packer未正确安装。

二、定义Packer模板

使用Packer创建自定义镜像时,需要创建一个JSON格式的模板文件。在该模板文件中,您需要指定创建自定义镜像的生成器和配置器。详情请参见Alicloud Image Builder(生成器)和Provisioners(配置器)。Packer具有多种配置器,可用于配置自定义镜像的内容生成方式,以下以常用的Shell配置器为例,定义Packer模板。
在Linux服务器中创建名为alicloud的json文件并粘贴以下内容。

{ "variables": { "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}", "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}"
}, "builders": [{ "type":"alicloud-ecs", "access_key":"{{user `access_key`}}", "secret_key":"{{user `secret_key`}}", "region":"cn-beijing", "image_name":"packer_basic", "source_image":"centos_7_02_64_20G_alibase_20170818.vhd", "ssh_username":"root", "instance_type":"ecs.n1.tiny", "internet_charge_type":"PayByTraffic", "io_optimized":"true"
}], "provisioners": [{ "type": "shell", "inline": [ "sleep 30", "yum install redis.x86_64 -y"
]
}]
}

您需要自定义的参数值如下表所示。

参数

描述

access_key 您的AccessKeyID。更多详情,请参见创建AccessKey。
说明由于AccessKey权限过大,为防止错误操作,建议您创建RAM用户,并使用RAM子账号创建AccessKey。具体步骤,请参见创建 RAM 用户和创建AccessKey。

secret_key 您的AccessKeySecret。更多详情,请参见创建AccessKey。

region 创建自定义镜像时使用临时资源的地域。

image_name 自定义镜像的名称。

source_image 基础镜像的名称,可以从阿里云公共镜像列表获得。

instance_type 创建自定义镜像时生成的临时实例的类型。

internet_charge_type 创建自定义镜像时临时实例的公网带宽付费类型。

provisioners 创建自定义镜像时使用的Packer配置器类型。详情请参见Packer配置器。

三、使用Packer创建自定义镜像

指定Packer模板文件生成自定义镜像的操作步骤如下:

运行命令export ALICLOUD_ACCESS_KEY=<您的AccessKeyID>导入您的AccessKeyID。运行命令export ALICLOUD_SECRET_KEY=<您的AccessKeySecret>导入您的AccessKeySecret。运行命令packer build alicloud.json创建自定义镜像。

示例运行结果如下,以下示例将创建含Redis的自定义镜像。

alicloud-ecs output will be in this color.
==> alicloud-ecs: Prevalidating alicloud image name...
alicloud-ecs: Found image ID: centos_7_02_64_20G_alibase_20170818.vhd
==> alicloud-ecs: Start creating temporary keypair: packer_59e44f40-c8d6-0ee3-7fd8-b1ba08ea94b8
==> alicloud-ecs: Start creating alicloud vpc
---------------------------
==> alicloud-ecs: Provisioning with shell script: /var/folders/3q/w38xx_js6cl6k5mwkrqsnw7w0000gn/T/packer-shell257466182
alicloud-ecs: Loaded plugins: fastestmirror
---------------------------
alicloud-ecs: Total 1.3 MB/s | 650 kB 00:00alicloud-ecs: Running transaction check
---------------------------
==> alicloud-ecs: Deleting temporary keypair...
Build 'alicloud-ecs' finished.
==> Builds finished. The artifacts of successful builds are:
--> alicloud-ecs: Alicloud images were created:cn-beijing: m-2ze12578be1oa4ovs6r9




更多相关文章

  1. 详解Java创建线程的五种常见方式
  2. android 获取路径目录方法以及判断目录是否存在,创建目录
  3. android studio 3.1.1 创建项目编译不过的问题解决
  4. 【Android(安卓)Audio】Android(安卓)Audio System 之二:AudioFli
  5. android NDK/JNI-实例开发流程
  6. Android教程之android数据库编程
  7. android sqlite 一次创建多个表
  8. 如何在Android平台上创建自定义的Cordova插件并使用SAP UI5消费
  9. Android中ArcGIS中实现DrawTool类

随机推荐

  1. ViewFlipper+GestureDetector实现不循环
  2. Android RelativeLayout相对布局属性简析
  3. 2.6.1 使用toast显示提示信息框
  4. 安卓布局(上中下布局)
  5. Android 学习笔记
  6. android:windowSoftInputMode
  7. Android gson解析json数据工具类
  8. Android应用开发之UI组件(TextView;EditT
  9. Android 正则表达式验证手机和邮箱格式是
  10. Android 2.1 android.R.drawable Icon Re