packer(3) plugin安装

在 macOS上为 Packer 安装 Docker 和 VirtualBox 插件,可以扩展 Packer 的功能,用于构建 Docker 容器镜像或 VirtualBox 虚拟机镜像。Packer 从 v1.7 开始支持插件系统,允许通过 packer init 或手动方式安装外部插件。


前提条件

  1. Packer 已安装
    确保你已经按照之前的指导在 macOS 上安装了 Packer(例如通过 brew install packer)。
  2. Docker 和 VirtualBox 已安装(可选)
    如果你计划使用这些插件构建镜像,建议安装 Docker Desktop 和 VirtualBox,但只是安装插件本身并不强制要求。

方法 1:通过 Packer 配置自动安装(推荐)

Packer 允许在模板文件中声明所需的插件,并通过 packer init 自动下载和安装。

步骤:

  1. 创建 Packer 模板文件
    新建一个文件,例如 docker-virtualbox.hcl,并添加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    packer {
    required_plugins {
    docker = {
    version = ">= 1.0.8" # 指定最低版本
    source = "github.com/hashicorp/docker"
    }
    virtualbox = {
    version = ">= 1.0.4" # 指定最低版本
    source = "github.com/hashicorp/virtualbox"
    }
    }
    }
    • required_plugins 块指定了 Docker 和 VirtualBox 插件的来源和版本。
  2. 初始化并安装插件
    在终端中运行以下命令:

    1
    packer init docker-virtualbox.hcl

    Packer 会自动从 GitHub 下载指定的插件版本并安装到默认插件目录(通常是 ~/.config/packer/plugins)。

  3. 验证插件安装
    检查已安装的插件:

    1
    packer plugins installed

    输出应类似:
    - github.com/hashicorp/docker v1.0.8+x5.0
    - github.com/hashicorp/virtualbox v1.0.4+x5.0


方法 2:手动安装插件

如果你需要在离线环境或自定义版本中安装插件,可以手动下载并放置插件二进制文件。

packer-integrations

步骤:

  1. 下载插件二进制文件

  2. 解压并放置到插件目录

    • 默认插件目录是 ~/.config/packer/plugins
    • 创建正确的目录结构并放置二进制文件:
      1
      2
      3
      4
      5
      6
      7
      mkdir -p ~/.config/packer/plugins/github.com/hashicorp/docker
      unzip packer-plugin-docker_v1.0.8_x5.0_darwin_amd64.zip -d ~/.config/packer/plugins/github.com/hashicorp/docker
      mv ~/.config/packer/plugins/github.com/hashicorp/docker/packer-plugin-docker ~/.config/packer/plugins/github.com/hashicorp/docker/packer-plugin-docker_v1.0.8_x5.0_darwin_amd64

      mkdir -p ~/.config/packer/plugins/github.com/hashicorp/virtualbox
      unzip packer-plugin-virtualbox_v1.0.4_x5.0_darwin_amd64.zip -d ~/.config/packer/plugins/github.com/hashicorp/virtualbox
      mv ~/.config/packer/plugins/github.com/hashicorp/virtualbox/packer-plugin-virtualbox ~/.config/packer/plugins/github.com/hashicorp/virtualbox/packer-plugin-virtualbox_v1.0.4_x5.0_darwin_amd64
  3. 验证插件安装
    运行以下命令检查:

    1
    packer plugins installed

    确认插件出现在列表中。


方法 3:通过命令行安装

Packer 提供 packer plugins install 命令直接安装插件。

步骤:

  1. 安装 Docker 插件

    1
    packer plugins install github.com/hashicorp/docker

    这将安装最新版本的 Docker 插件。

  2. 安装 VirtualBox 插件

    1
    packer plugins install github.com/hashicorp/virtualbox

    这将安装最新版本的 VirtualBox 插件。

  3. 指定版本(可选)
    如果需要特定版本:

    1
    2
    packer plugins install --version 1.0.8 github.com/hashicorp/docker
    packer plugins install --version 1.0.4 github.com/hashicorp/virtualbox
  4. 验证

    1
    packer plugins installed

注意事项

  1. 插件版本兼容性
    插件版本必须与你的 Packer 版本兼容。建议查看插件的 Release 说明,确保匹配( Packer 的 API 版本通常是 x5.0)。
  2. 环境变量(可选)
    如果自定义插件路径,可以设置 PACKER_PLUGIN_PATH
    1
    export PACKER_PLUGIN_PATH="/custom/path/to/plugins"
  3. 权限问题
    确保插件文件有执行权限:
    1
    chmod +x ~/.config/packer/plugins/github.com/hashicorp/docker/packer-plugin-docker_v1.0.8_x5.0_darwin_amd64