Skip to content

chuacw/packer-builder-aliyun

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aliyun builder (for packer.io)

阿里云镜像构建工具能够创建在阿里云上使用的弹性计算ECS镜像。

该镜像构建工具通过调用阿里云的API,以如下步骤构建镜像:

  • 创建并启动阿里云弹性计算ECS实例;
  • 在ECS实例上安装和运行必要的程序(provisioning);
  • 基于ECS实例创建对应的快照(snapshot);
  • 基于快照创建镜像(image)。

创建的镜像后续可以作为在阿里云上启动新ECS服务器的基础,支持所谓镜像部署。

镜像管理工具仅负责创建镜像,镜像创建以后存放在阿里云上,镜像管理工具并不负责后续的镜像管理任务。

安装

TODO

基本的例子

下面的模板是经过测试可以工作的,它创建一个基本的ubuntu 14镜像:

{
  "variables": {
    "ali_access_key_id": "{{env  `ALIYUN_ACCESS_KEY_ID`}}",
    "ali_access_key_secret": "{{env `ALIYUN_ACCESS_KEY_SECRET`}}",
    "ali_security_group_id": "{{env `ALIYUN_SECURITY_GROUP_ID`}}"
  },
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "echo ubuntu"
      ]
    }
  ],
  "builders": [{
    "type": "aliyun",
    "access_key_id": "{{user `ali_access_key_id`}}",
    "access_key_secret": "{{user `ali_access_key_secret`}}",
    "region_id": "cn-shanghai",
    "base_image_id": "ubuntu1404_64_40G_cloudinit_20160427.raw",
    "instance_type": "ecs.s2.large",
    "security_group_id": "{{user `ali_security_group_id`}}",
    "image_name": "packer-ubuntu-{{timestamp}}",
    "image_description": "ubuntu image created by packer at {{timestamp}}"
  }]
}

关于模板含义和如何运行packer,请参考packer.io的文档

模板配置参考

下面列出支持的必选和可选参数。

必选参数

  • access_key_id (string) - 访问阿里云API的Access Key Id。 如果未指定,则从ALIYUN_ACCESS_KEY_ID环境变量中获取值。
  • access_key_secret (string) - 访问阿里云API的Access Key Secret。如果未指定,则从ALIYUN_ACCESS_KEY_SECRET环境变量中获取值。
  • security_group_id (string) - 阿里云安全组id,需要在阿里云上预创建安全组。如果未指定,则从ALIYUN_SECURITY_GROUP_ID环境变量中获取。
  • region_id (string) - 阿里云区域id,例如cn-shanghai,可通过阿里云API DescribeRegions查询。
  • base_image_id (string) - 基础镜像文件ID,表示启动实例时选择的镜像资源。可通过阿里云API DescribeImages查询,这里有一份备份的调用返回供参考。
  • instance_type (string) - 实例的资源规则。取值参见实例资源规格对照表,也可通过阿里云API DescribeInstanceTypes查询。

可选参数

  • image_name (string) - 目标镜像的名称,缺省值packer-{{timestamp}}, 命名规则参考阿里云API CreateImage
  • image_description (string) - 目标镜像的描述,缺省值Created by Packer for Aliyun, 命名规则参考阿里云API CreateImage

贡献

欢迎任何对Packer builder for Aliyun的意见、建议和贡献!

如有疑问可以随时提问,你只需通过Create an issue进行询问。

TODO

  • 目前ssh仅通过阿里云内网IP访问来完成软件安装过程(provisioning),也就是说运行packer的机器和目标ECS实例都要在阿里云内部才能访问到,后续考虑增加支持ssh通过阿里云公网IP访问的方式。
  • 创建快照过程中的进度判断,目前仅判断progress完成度百分比,后续考虑增加状态status判断,需要完善第三方的aliyun golang sdk

About

A builder plugin for packer.io for ali cloud

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%