#!/bin/bash set -o errexit set -o nounset set -o pipefail VM_NEW_NAME=$1 # 提取当前OVF文件名 VM_NOW_NAME=$(basename *.ovf | awk -F '.ovf' '{print $1}') # 重命名OVF文件和VMDK文件 mv "$VM_NOW_NAME".ovf "$VM_NEW_NAME".ovf mv "$VM_NOW_NAME"-1.vmdk "$VM_NEW_NAME".vmdk # 在OVF文件中替换名称 sed -i "s/$VM_NOW_NAME/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf sed -i "s/${VM_NEW_NAME}-1/$VM_NEW_NAME/g" "$VM_NEW_NAME".ovf # 增加 mf 文件 openssl sha256 "$VM_NEW_NAME".vmdk "$VM_NEW_NAME".ovf > "$VM_NEW_NAME".mf # 导出成 OVA tar -cf "$VM_NEW_NAME".ova "$VM_NEW_NAME".ovf "$VM_NEW_NAME".vmdk "$VM_NEW_NAME".mf echo "#### PACKER_COMPLETE ####" # 脚本执行完以后,删除本脚本 rm -f "$0"