hello,
I want to create customs KVM templates from a base KVM template.
So the sources should be a local template (VM)
But for the moment I see no article or howto describing this process.
What i frequently see is using and Iso as the source or a cloud image.
Any idea about how can I use a local vm/template?
Thanks
To create a custom KVM template from an existing KVM VM, follow these steps:
- Prepare the VM: Clean up and shut down the existing VM.
- Create an Image: Use
virt-sysprep
to prepare the VM, then usevirsh
orqemu-img
to create an image file from the VM’s disk. - Set Up Packer: Create a Packer template using the QEMU builder, specifying the VM image you created as the source.
- Build the Template: Run Packer to create the new KVM template based on your prepared image.
This process involves converting your VM to an image and then using that image with Packer to build a new template.
Hello rtfolfe,
thanks for the answer, that’s what i want to do, but howto do I do it? specialily step 3?
Thanks you very much
Here is a sample Packer template snippet using the qemu
builder:
{
“builders”: [
{
“type”: “qemu”,
“format”: “qcow2”,
“accelerator”: “kvm”,
“disk_size”: “10240”,
“http_directory”: “http”,
“iso_url”: “/path/to/your/base-template.qcow2”,
“iso_checksum”: “none”,
“vm_name”: “custom-kvm-template”,
“ssh_username”: “your-username”,
“ssh_password”: “your-password”,
“ssh_port”: 22,
“ssh_wait_timeout”: “30m”
}
],
“provisioners”: [
{
“type”: “shell”,
“inline”: [
“sudo apt-get update”,
“sudo apt-get install -y nginx”
]
}
]
}
Hello rtwolfe,
ok thanks very much.
so, it is about putting the disks in the iso_url
If my vm VM has multiple disks i just need tu put them one after the other?
like this:
“iso_url”: “/path/to/your/base-template1.qcow2”,“/path/to/your/base-template2.qcow2”,“/path/to/your/base-template3.qcow2”
thanks again
bets regards
Hello,
sorry i was working in something else, I thank you for your answers.
But If my VM has multiple disks I just need to put them one after the other?
like this:
“iso_url”: “/path/to/your/base-template1.qcow2”,“/path/to/your/base-template2.qcow2”,“/path/to/your/base-template3.qcow2”
thanks again
bets regards