创建自定义镜像
<p>本文以在Windows平台生成Linux自定义镜像为例。</p>
<p> </p>
<p><span style="font-size:16px"><strong>操作步骤</strong></span></p>
<p>1. 按照前文介绍的各个字段制作符合您要求的json文件。</p>
<p>2. 执行命令 packer build xxx.json,创建自定义镜像。</p>
<p>3. 示例运行结果如下,以下示例将创建含Redis的自定义镜像:</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:814px">
<tbody>
<tr>
<td style="background-color:#ededed; width:806px">
<p>PS C:\ > .\packer.exe build "C:\HKA_LINUX.json"</p>
<p>pacloud output will be in this color.</p>
<p> </p>
<p>==> pacloud: zone_name:[HKA] url:[https://api.yun.pingan.com/api/v1] timeout:[10] image_name:[linux-test] source_image_id:[Image-2N5XOLDfUb] vm_password:[xxxxxxxx] cleanup_nat:[false] cpu_amount:[0] memory_size_mb:[0]</p>
<p>==> pacloud: 开始配置网络...</p>
<p>==> pacloud: 开始查找或创建VPC..</p>
<p>==> pacloud: 找到了一个已有的VPC,名称:HKX17011</p>
<p>==> pacloud: 开始查找或创建Network..VPC ID:Vpc-5x2Epc0ism</p>
<p>==> pacloud: 找到了一个已有的Network,名称:HKX17011DMZ</p>
<p>==> pacloud: 开始查找或创建Subnet..</p>
<p>==> pacloud: 找到了一个已有的Subnet,名称:HKX17011DMZHKA001</p>
<p>==> pacloud: 开始配置NAT...</p>
<p>==> pacloud: 获取NAT类型...</p>
<p>==> pacloud: NAT类型获取成功,名称:[按小时] 开始查找或创建NAT...</p>
<p>==> pacloud: 查找或创建NAT完毕</p>
<p>==> pacloud: NAT ID:Nat-yy9YwG6Bke</p>
<p>==> pacloud: 开始创建带宽包,正在获取带宽包类型...</p>
<p>==> pacloud: 带宽包类型获取成功,名称:按小时 开始获取运营商列表...</p>
<p>==> pacloud: 带宽包运营商获取成功,名称:HGC 开始创建带宽包...</p>
<p>==> pacloud: 带宽包订单创建成功,订单ID:Order-h1AwztRZTY 开始等待订单状态完成...</p>
<p>==> pacloud: 带宽包订单已实施完毕,带宽包名称:NAT-BW-X1700034 开始获取带宽包详情...</p>
<p>==> pacloud: 带宽包详情获取完毕,创建成功。开始创建NAT IP...</p>
<p>==> pacloud: 异步任务创建成功,等待完成...</p>
<p>==> pacloud: NAT IP已经创建完毕,如果获取详情失败则需要手动删除</p>
<p>==> pacloud: NAT IP详情获取成功,名称:NAT-BW-IPX1700067</p>
<p>==> pacloud: NAT配置完成</p>
<p>==> pacloud: 开始配置安全组</p>
<p>==> pacloud: 安全组配置完毕</p>
<p>==> pacloud: 开始创建ECS...</p>
<p>==> pacloud: ECS创建成功,名称:HKA-LX1700149</p>
<p>==> pacloud: 获取ECS详情成功,ECS创建完毕</p>
<p>==> pacloud: 开始配置DNAT规则</p>
<p>==> pacloud: DNAT规则配置完成</p>
<p>==> pacloud: 开始将ECS添加至安全组...</p>
<p>==> pacloud: 将ECS添加至安全组成功</p>
<p>==> pacloud: Using ssh communicator to connect: 118.143.215.231</p>
<p>==> pacloud: Waiting for SSH to become available...</p>
<p>==> pacloud: Connected to SSH!</p>
<p>==> pacloud: Provisioning with shell script: C:\Users\ADMINI~1\AppData\Local\Temp\2\packer-shell686277403</p>
<p> pacloud: Loaded plugins: fastestmirror</p>
<p> pacloud: Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast</p>
<p> pacloud: Determining fastest mirrors</p>
<p> pacloud: Resolving Dependencies</p>
<p> pacloud: --> Running transaction check</p>
<p> pacloud: ---> Package redis.x86_64 0:3.2.12-2.el7 will be installed</p>
<p> pacloud: --> Processing Dependency: libjemalloc.so.1()(64bit) for package: redis-3.2.12-2.el7.x86_64</p>
<p> pacloud: --> Running transaction check</p>
<p> pacloud: ---> Package jemalloc.x86_64 0:3.6.0-1.el7 will be installed</p>
<p> pacloud: --> Finished Dependency Resolution</p>
<p> pacloud:</p>
<p> pacloud: Dependencies Resolved</p>
<p> pacloud:</p>
<p> pacloud: ================================================================================</p>
<p> pacloud: Package Arch Version Repository Size</p>
<p> pacloud: ================================================================================</p>
<p> pacloud: Installing:</p>
<p> pacloud: redis x86_64 3.2.12-2.el7 epel 544 k</p>
<p> pacloud: Installing for dependencies:</p>
<p> pacloud: jemalloc x86_64 3.6.0-1.el7 epel 105 k</p>
<p> pacloud:</p>
<p> pacloud: Transaction Summary</p>
<p> pacloud: ================================================================================</p>
<p> pacloud: Install 1 Package (+1 Dependent package)</p>
<p> pacloud:</p>
<p> pacloud: Total download size: 648 k</p>
<p> pacloud: Installed size: 1.7 M</p>
<p> pacloud: Downloading packages:</p>
<p> pacloud: --------------------------------------------------------------------------------</p>
<p> pacloud: Total 953 kB/s | 648 kB 00:00</p>
<p> pacloud: Running transaction check</p>
<p> pacloud: Running transaction test</p>
<p> pacloud: Transaction test succeeded</p>
<p> pacloud: Running transaction</p>
<p> pacloud: Installing : jemalloc-3.6.0-1.el7.x86_64 1/2</p>
<p> pacloud: Installing : redis-3.2.12-2.el7.x86_64 2/2</p>
<p> pacloud: Verifying : redis-3.2.12-2.el7.x86_64 1/2</p>
<p> pacloud: Verifying : jemalloc-3.6.0-1.el7.x86_64 2/2</p>
<p> pacloud:</p>
<p> pacloud: Installed:</p>
<p> pacloud: redis.x86_64 0:3.2.12-2.el7</p>
<p> pacloud:</p>
<p> pacloud: Dependency Installed:</p>
<p> pacloud: jemalloc.x86_64 0:3.6.0-1.el7</p>
<p> pacloud:</p>
<p> pacloud: Complete!</p>
<p>==> pacloud: 开始关闭ECS</p>
<p>==> pacloud: ECS关机完成</p>
<p>==> pacloud: 开始创建镜像</p>
<p>==> pacloud: 创建成功,镜像ID:Image-WB9sKza3Jj</p>
<p>==> pacloud: 开始将ECS移出安全组,移出失败时请手动移出</p>
<p>==> pacloud: 移出成功</p>
<p>==> pacloud: 开始清理DNAT规则,删除失败时请手动删除。DNAT规则ID:NatDnatRule-HLWBaaA4HA</p>
<p>==> pacloud: DNAT规则清理完毕</p>
<p>==> pacloud: 开始删除ECS,如果删除失败请手动删除。ECS名称:HKA-LX1700149</p>
<p>==> pacloud: ECS的状态为Stopped|已关机,将尝试直接删除</p>
<p>==> pacloud: ECS删除成功</p>
<p>==> pacloud: 开始清理安全组...</p>
<p>==> pacloud: 本次执行创建了一个安全组规则,ID为:SecurityGroupRule-iKFRlu8B0p 将尝试删除,如果删除失败请手动删除</p>
<p>==> pacloud: 安全组规则删除成功</p>
<p>==> pacloud: 本次执行没有创建安全组,不需要删除</p>
<p>==> pacloud: 安全组清理完毕</p>
<p>==> pacloud: 开始清理NAT资源...</p>
<p>==> pacloud: 找到了2个NAT IP,开始清理...</p>
<p>==> pacloud: 开始清理第1个NAT IP,IP:118.143.215.231</p>
<p>==> pacloud: 删除成功</p>
<p>==> pacloud: 开始清理第2个NAT IP,IP:118.143.215.154</p>
<p>==> pacloud: 删除成功</p>
<p>==> pacloud: NAT IP清理完毕,开始清理带宽包。带宽包:{NAT-BW-X1700034 1 1 Available|可用 NatBandWidth-7NIiA3hqCp Hour|按小时 packer 2019-06-17 11:34:04 HEMINGYE603 NatBrandWidthType-Hour}</p>
<p>==> pacloud: 带宽包删除成功</p>
<p>==> pacloud: NAT资源清理完毕</p>
<p>==> pacloud: 开始清理网络资源...</p>
<p>==> pacloud: 本次执行没有创建子网,不需要删除</p>
<p>==> pacloud: 本次执行没有创建网络,不需要删除</p>
<p>==> pacloud: 本次执行没有创建VPC,不需要删除</p>
<p>==> pacloud: 网络资源清理完毕</p>
<p>==> pacloud: 步骤已全部完成,尝试获取镜像ID</p>
<p>==> pacloud: 构建成功,镜像ID:Image-WB9sKza3Jj</p>
<p>==> pacloud: 构建结束,总耗时:542秒</p>
<p>Build 'pacloud' finished.</p>
<p> </p>
<p>==> Builds finished. The artifacts of successful builds are:</p>
<p>--> pacloud: 镜像已创建,镜像ID: 'Image-WB9sKza3Jj'</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!