添加“shell-local”后处理器但运行多次

时间:2016-05-18 20:04:24

标签: packer

我正在使用Packer 0.9.0和后处理器“shell-local”来运行一个脚本。问题是shell脚本为每个生成的工件(.vmdk,.vmx等)运行,我不知道原因。

源代码:

2010-04-01

1 个答案:

答案 0 :(得分:1)

每个工件都会运行一次后处理器。使用 artifice 后处理器覆盖工件列表,强制shell本地后处理器使用所选工件。 例如:

"post-processors": [
  [
    {
      "type": "artifice",
      "only": ["centos6-aufs-master-slave-vmw"],
      "files": ["{{user `output_vmw_directory`}}/centos6-aufs-master-slave-vmw.vmx"]
    },
    {
      "type": "shell-local",
      "only": ["centos6-aufs-master-slave-vmw"],
      "scripts": [
        "scripts/vmx-to-ova.sh"
      ],
      "environment_vars": ["PACKER_OUTPUT_DIRECTORY=/home/myuser/projects/IT/packer-project/centos6-aufs-master-slave/{{user `output_vmw_directory`}}"]
    }
  ]
]

文档:https://www.packer.io/docs/post-processors/artifice.html