簡體   English   中英

使用Packer從“無業游民”框創建VM映像?

[英]Create a VM image from a Vagrant box using Packer?

我知道我可以使用Packer以腳本方式創建自己的VM映像。 如果使用VirtualBox構建器,則可以選擇以下兩種方式之一:從頭開始構建所有內容,或者在現有VM之上構建。

基本上,我想實現的目標是在現有的Vagrant盒(Boxcutter的Docker的Ubuntu 15.04)的基礎上構建。

是否可以使用Packer,如果可以,如何? 我在文檔中找不到任何內容。 這些示例始終僅引用OVF / OVA文件。 有什么提示嗎?

這實際上不是Packer本身支持的工作流程,但是您可以編寫一個小的Shell腳本來下載Vagrant框,導出OVF,然后啟動Packer的virtualbox-ovf構建器。

Shell腳本(請注意,此腳本已硬編碼到包裝盒的1.1.0版本中)

#!/bin/sh

vagrant init boxcutter/ubuntu1504-docker
vagrant up --provider virtualbox --no-provision
vagrant halt

rm -rf output-virtualbox-ovf
packer build packer.json

packer.json

{
  "variables": {
    "home": "{{env `HOME`}}"
  },
  "builders": [{
    "type": "virtualbox-ovf",
    "source_path": "{{user `home`}}/.vagrant.d/boxes/boxcutter-VAGRANTSLASH-ubuntu1504-docker/1.1.0/virtualbox/box.ovf",
    "ssh_username": "vagrant",
    "ssh_password": "vagrant",
    "ssh_wait_timeout": "30s",
    "shutdown_command": "echo 'packer' | sudo -S shutdown -P now"
  }],
  "provisioners": [{
    "type": "shell",
    "inline": ["echo 'my additional provisioning steps'"]
  }],
  "post-processors": [{
    "type": "vagrant",
    "keep_input_artifact": true,
    "output": "box/modified-boxcutter-VAGRANTSLASH-ubuntu1504-docker.box"
  }]
}

這將創建一個打包在box/modified-boxcutter-VAGRANTSLASH-ubuntu1504-docker.box中的新的Vagrant盒子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM