1508
Comment:
|
1920
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
Once a template system has been installed, that system can be cloned. `virt-clone` will automatically change the MAC address of your network device. Use the script below to clone your template. | Once a template system has been installed, that system can be cloned. `virt-clone` will automatically change the MAC address of your network device. |
Line 5: | Line 5: |
`clonedomain.sh` | == Cloning == Use the script below to clone your template. `domain_clone.sh` |
Line 34: | Line 38: |
Make a clone | Make a clone. |
Line 36: | Line 40: |
./clonedomain.sh clone | ./domain_clone.sh clone |
Line 39: | Line 43: |
== Cleaning up Your New Guest == | == Console Access == |
Line 41: | Line 45: |
Find the blocksize and the partition layout for the guest | Remove console access by [[Domain Editing|editing the domain]]. == Memory == Increase or decrease amount of memory by [[Domain Editing|editing the domain]]. == Unique keys for ssh == Make sure your clone does indeed have unique ssh keys. This is a really important step when cloning. Consider all your clones had the same ssh keys, that would really be a mess. |
Line 43: | Line 56: |
fdisk -ul /dev/vg2/kvm_clone_vda | rm /etc/ssh/ssh_host_* dpkg-reconfigure openssh-server service sshd restart |
Line 46: | Line 61: |
Calculate the partition offset. Offset = sector * blocksize. In this case 512 * 499712 = 255852544. mount the partition. | == Hostname == Change the hostname of your new guest. |
Line 48: | Line 66: |
mount -o loop,offset=255852544 /dev/vg2/kvm_clone_vda /mnt/misc | cp /etc/hosts /etc/hosts.bak sed -i "s/stretch-template/clone/g" /etc/hosts cp /etc/hostname /etc/hostname.bak sed -i "s/stretch-template/clone/g" /etc/hostname |
Line 51: | Line 72: |
change the hostname delete ssh keys |
== root password == {{{ passwd }}} |
Domain Cloning
Once a template system has been installed, that system can be cloned. virt-clone will automatically change the MAC address of your network device.
Cloning
Use the script below to clone your template.
domain_clone.sh
1 #!/bin/sh
2
3 LVM_GROUP="vg2"
4 NAME_ORIGINAL="stretch-template"
5 LVM_NAME_ORIGINAL="kvm_${NAME_ORIGINAL}_vda"
6 LVM_SIZE_ORIGINAL=`lvs /dev/${LVM_GROUP}/${LVM_NAME_ORIGINAL} -o LV_SIZE --noheadings --units B --nosuffix`
7 NAME_CLONE="stretch-clone"
8 LVM_NAME_CLONE="kvm_${NAME_CLONE}_vda"
9
10 if [ $# -gt 0 ]
11 then
12 NAME_CLONE=${1}
13 LVM_NAME_CLONE="kvm_${NAME_CLONE}_vda"
14 fi
15
16 if [ ! -e /dev/${LVM_GROUP}/${LVM_NAME_CLONE} ]
17 then
18 # create lvm partition
19 lvcreate --size ${LVM_SIZE_ORIGINAL}B --name ${LVM_NAME_CLONE} ${LVM_GROUP}
20
21 # clone the domain
22 virt-clone --original ${NAME_ORIGINAL} --name ${NAME_CLONE} --file /dev/${LVM_GROUP}/${LVM_NAME_CLONE} --check path_in_use=off,path_exists=off
23 else
24 echo "${0}: refusing to overwrite existing domain"
25 fi
Make a clone.
./domain_clone.sh clone
Console Access
Remove console access by editing the domain.
Memory
Increase or decrease amount of memory by editing the domain.
Unique keys for ssh
Make sure your clone does indeed have unique ssh keys. This is a really important step when cloning. Consider all your clones had the same ssh keys, that would really be a mess.
rm /etc/ssh/ssh_host_* dpkg-reconfigure openssh-server service sshd restart
Hostname
Change the hostname of your new guest.
cp /etc/hosts /etc/hosts.bak sed -i "s/stretch-template/clone/g" /etc/hosts cp /etc/hostname /etc/hostname.bak sed -i "s/stretch-template/clone/g" /etc/hostname
root password
passwd