ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Making a template and cloning in KVM

    IT Discussion
    kvm virtualization cloning deployment virt-clone
    5
    6
    2.5k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • EddieJenningsE
      EddieJennings
      last edited by EddieJennings

      At my current job, I'm getting experience with VMware for the first time. One thing that I like about it is that we have templates of a few editions of Window Server, which we keep patched to current and from which we deploy new VMs as needed.

      My home lab uses KVM, so I wanted to see if I could create similar functionality. I'm not using oVirt or anything like that (that's a project for the future), but here's what I've done and do reduce a bit of time for deploying some new VMs.

      1. I have a VM of Fedora, which I keep patched to current. The VM is shutdown when not being patched so it's not eating resources.
      2. To deploy a new VM, I run the following command on my KVM host.

      virt-clone --original VMtoBeCloned --name VMtoBeCreated --mac RANDOM --auto-clone

      According to the man page simply not specifying --mac should generate new mac addresses for the NICs, but I'm a bit paranoid. The --auto-clone option will automatically create the qcow2 storage file for the new VM.

      You can also clone from the Virt Manager GUI, which is what I did until I discovered the greatness of --auto-clone.

      1 Reply Last reply Reply Quote 2
      • black3dynamiteB
        black3dynamite
        last edited by black3dynamite

        Virt-Builder is another option if you will be creating Linux VMs.
        It's slow the first time you use it but the next time, its a lot quicker.

        sudo virt-builder fedora-28 \
            --root-password password:Password1 \
            --output /home/kvm/libvirt/images/fedora28.qcow2 \
            --format qcow2 \
            --hostname fedora28.domain.com \
            --timezone America/Denver \
            --update \
            --install cockpit \
            --install cockpit-storaged \
            --selinux-relabel \
            --size 50G \
            --firstboot-command 'systemctl enable --now cockpit.socket' \
            --firstboot-command 'firewall-cmd --permanent --add-service=cockpit; firewall-cmd --reload'
        
        sudo virt-install \
            --name fedora28 \
            --vcpus 2 \
            --ram 4096 \
            --disk /home/kvm/libvirt/images/fedora28.qcow2,format=qcow2 \
            --nographics \
            --import \
            --os-variant fedora28 \
            --network type=direct,source=team0,source_mode=bridge
        
        1 Reply Last reply Reply Quote 0
        • ObsolesceO
          Obsolesce
          last edited by

          I've been using this to set up some test VMs on KVM. It's been working great.

          virt-install --name Win2016a \
          --description 'Windows Server 2016 Test' \
          --ram 4096 \
          --vcpus 2 \
          --os-type Windows \
          --os-variant "win2k16" \
          --disk path=/DATA/vms/Win2016a/Win2016a.qcow2,bus=sata,size=50 \
          --cdrom /DATA/img/WS2016_EVAL_14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO \
          --network type=direct,source=eth0,source_mode=bridge,model=e1000 \
          --graphics spice \
          --noautoconsole \
          --noreboot \
          --boot uefi \
          
          
          ObsolesceO 1 Reply Last reply Reply Quote 0
          • ObsolesceO
            Obsolesce @Obsolesce
            last edited by Obsolesce

            @obsolesce said in Making a template and cloning in KVM:

            I've been using this to set up some test VMs on KVM. It's been working great.

            virt-install --name Win2016a \
            --description 'Windows Server 2016 Test' \
            --ram 4096 \
            --vcpus 2 \
            --os-type Windows \
            --os-variant "win2k16" \
            --disk path=/DATA/vms/Win2016a/Win2016a.qcow2,bus=sata,size=50 \
            --cdrom /DATA/img/WS2016_EVAL_14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO \
            --network type=direct,source=eth0,source_mode=bridge,model=e1000 \
            --graphics spice \
            --noautoconsole \
            --noreboot \
            --boot uefi \
            
            

            Something to note:

            If you use --cdrom instead of --disk /path/to/iso,device=cdrom,etc..., then it will auto-boot afterwards even if using --noreboot.

            1 Reply Last reply Reply Quote 0
            • stacksofplatesS
              stacksofplates
              last edited by

              Started a new job last month and it's all VMware. I miss libguestfs tools.

              jmooreJ 1 Reply Last reply Reply Quote 1
              • jmooreJ
                jmoore @stacksofplates
                last edited by

                @stacksofplates I can imagine. Good luck!

                1 Reply Last reply Reply Quote 1
                • 1 / 1
                • First post
                  Last post