Packer 手动修复安装腾讯云插件
文章目录
- Packer [腾讯云插件文档](https://developer.hashicorp.com/packer/integrations/hashicorp/tencentcloud) 提供的版本:v1.2.0,目前 Packer 构建镜像时,不支持现有2种[硬盘类型](https://www.tencentcloud.com/zh/document/product/213/15753#systemdisk):`CLOUD_BSSD(通用型SSD云硬盘)` 和 `CLOUD_HSSD(增强型SSD云硬盘)`。
- 解决方案:
- 1. [GitHub 代码仓库](https://github.com/hashicorp/packer-plugin-tencentcloud.git) 下载至本地或服务器:
- 2. 文件:`builder/tencentcloud/cvm/run_config.go` 搜索 `CLOUD_SSD`,找到类似内容:
- 3. 修改文件添加硬盘类型:`CLOUD_BSSD` 和 `CLOUD_HSSD`:
- 4. 手动编译生成二进制可执行文件:
- 5. 验证发布版本:
- 6. 安装本地插件:
- 注意事项:
Packer 腾讯云插件文档 提供的版本:v1.2.0,目前 Packer 构建镜像时,不支持现有2种硬盘类型:CLOUD_BSSD(通用型SSD云硬盘)
和 CLOUD_HSSD(增强型SSD云硬盘)
。
Packer .pkr.hcl 配置文件使用这2种硬盘类型构建镜像时直接报错类似:
Error: 1 error(s) occurred:* specified disk_type(CLOUD_BSSD) is invalid
替换成其他几种硬盘类型,如:CLOUD_SSD
、CLOUD_PREMIUM(默认配置)
等则可能报错类似:
Failed to run instance: [TencentCloudSDKError] Code=InvalidParameter, Message=[19045]CVM not support the required disk, RequestId=b7078354-7e8a-41af-9b14-1a3b8177b58f
解决方案:
1. GitHub 代码仓库 下载至本地或服务器:
git clone https://github.com/hashicorp/packer-plugin-tencentcloud.git
cd packer-plugin-tencentcloud
2. 文件:builder/tencentcloud/cvm/run_config.go
搜索 CLOUD_SSD
,找到类似内容:
var ValidCBSType = []string{"LOCAL_BASIC", "LOCAL_SSD", "CLOUD_BASIC", "CLOUD_SSD", "CLOUD_PREMIUM",
}
3. 修改文件添加硬盘类型:CLOUD_BSSD
和 CLOUD_HSSD
:
var ValidCBSType = []string{"LOCAL_BASIC", "LOCAL_SSD", "CLOUD_BASIC", "CLOUD_BSSD", "CLOUD_HSSD", "CLOUD_SSD", "CLOUD_PREMIUM",
}
4. 手动编译生成二进制可执行文件:
go build
5. 验证发布版本:
./packer-plugin-tencentcloud describe
输出类似,表明编译成功:
{"version":"1.2.1-dev","sdk_version":"0.5.2","api_version":"x5.0","builders":["cvm"],"post_processors":[],"provisioners":[],"datasources":[]}
6. 安装本地插件:
packer plugins install --path packer-plugin-tencentcloud github.com/hashicorp/tencentcloud
输出类似,表明安装成功:
Successfully installed plugin github.com/hashicorp/tencentcloud from /Users/dongsong/code/packer-plugin-tencentcloud/packer-plugin-tencentcloud to /Users/dongsong/.config/packer/plugins/github.com/hashicorp/tencentcloud/packer-plugin-tencentcloud_v1.2.1-dev_x5.0_darwin_arm64
注意事项:
已通过命令行:
packer plugins install github.com/hashicorp/tencentcloud
或类似初始化命令行:
packer init tx.pkr.hcl
远程安装过插件的,可通过以下命令删除已安装插件后,按照本文解决方案提供的6个步骤完成即可:
packer plugins remove github.com/hashicorp/tencentcloud