首页/DevOps/push-to-registry
P

push-to-registry

by @hashicorpv1.0.0
0.0(0)

配置Packer模板,将构建元数据推送到HCP Packer注册表,便于管理和追踪构建。

Docker RegistryContainerizationCI/CDImage ManagementDevOps AutomationGitHub
安装方式
npx skills add hashicorp/agent-skills --skill push-to-registry
compare_arrows

Before / After 效果对比

1
使用前

之前,每次 Packer 构建完成后,都需要手动记录或通过脚本解析日志来追踪构建的元数据(如镜像ID、版本、创建时间等)。这导致元数据分散,难以集中管理和查询,审计追踪也非常耗时。

使用后

使用 HCP Packer Registry 后,Packer 模板会自动将构建元数据推送到注册中心。所有构建信息都集中存储,可以轻松查询、版本控制和审计。大大提升了构建资产的可追溯性和管理效率。

description SKILL.md

push-to-registry

Push to HCP Packer Registry Configure Packer templates to push build metadata to HCP Packer registry. Reference: HCP Packer Registry Note: HCP Packer is free for basic use. Builds push metadata only (not actual images), adding minimal overhead (<1 minute). Basic Registry Configuration packer { required_version = ">= 1.7.7" } variable "image_name" { type = string default = "web-server" } locals { timestamp = regex_replace(timestamp(), "[- TZ:]", "") } source "amazon-ebs" "ubuntu" { region = "us-west-2" instance_type = "t3.micro" source_ami_filter { filters = { name = "ubuntu/images/ubuntu-jammy-22.04-amd64-server-" } most_recent = true owners = ["099720109477"] } ssh_username = "ubuntu" ami_name = "${var.image_name}-${local.timestamp}" } build { sources = ["source.amazon-ebs.ubuntu"] hcp_packer_registry { bucket_name = var.image_name description = "Ubuntu 22.04 base image for web servers" bucket_labels = { "os" = "ubuntu" "team" = "platform" } build_labels = { "build-time" = local.timestamp } } provisioner "shell" { inline = [ "sudo apt-get update", "sudo apt-get upgrade -y", ] } } Authentication Set environment variables before building: export HCP_CLIENT_ID="your-service-principal-client-id" export HCP_CLIENT_SECRET="your-service-principal-secret" export HCP_ORGANIZATION_ID="your-org-id" export HCP_PROJECT_ID="your-project-id" packer build . Create HCP Service Principal Navigate to HCP → Access Control (IAM) Create Service Principal Grant "Contributor" role on project Generate client secret Save client ID and secret Registry Configuration Options bucket_name (required) The image identifier. Must stay consistent across builds! bucket_name = "web-server" # Keep this constant bucket_labels (optional) Metadata at bucket level. Updates with each build. bucket_labels = { "os" = "ubuntu" "team" = "platform" "component" = "web" } build_labels (optional) Metadata for each iteration. Immutable after build completes. build_labels = { "build-time" = local.timestamp "git-commit" = var.git_commit } CI/CD Integration GitHub Actions name: Build and Push to HCP Packer on: push: branches: [main] env: HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }} HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }} HCP_ORGANIZATION_ID: ${{ secrets.HCP_ORGANIZATION_ID }} HCP_PROJECT_ID: ${{ secrets.HCP_PROJECT_ID }} jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: hashicorp/setup-packer@main - name: Build and push run: | packer init . packer build \ -var "git_commit=${{ github.sha }}" \ . Querying in Terraform data "hcp_packer_artifact" "ubuntu" { bucket_name = "web-server" channel_name = "production" platform = "aws" region = "us-west-2" } resource "aws_instance" "web" { ami = data.hcp_packer_artifact.ubuntu.external_identifier instance_type = "t3.micro" tags = { PackerBucket = data.hcp_packer_artifact.ubuntu.bucket_name } } Common Issues Authentication Failed Verify HCP_CLIENT_ID and HCP_CLIENT_SECRET Ensure service principal has Contributor role Check organization and project IDs Bucket Name Mismatch Keep bucket_name consistent across builds Don't include timestamps in bucket_name Creates new bucket if name changes Build Fails Packer fails immediately if can't push metadata Prevents drift between artifacts and registry Check network connectivity to HCP API Best Practices Consistent bucket names - Never change for same image type Meaningful labels - Use for versions, teams, compliance CI/CD automation - Automate builds and registry pushes Immutable build labels - Put changing data (git SHA, date) in build_labels References HCP Packer Documentation hcp_packer_registry Block HCP Terraform Provider Weekly Installs284Repositoryhashicorp/agent-skillsGitHub Stars465First SeenJan 29, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onopencode236github-copilot235codex222gemini-cli219claude-code208cursor201

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量0
评分0.0 / 5.0
版本1.0.0
更新日期2026年3月17日
对比案例1 组

用户评分

0.0(0)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

时间线

创建2026年3月17日
最后更新2026年3月17日