This page documents the procedure for creating a new KVM guest on a mayfirst server. This document is not complete! Do not use it to actually create a new KVM guest yet. = Creating a new KVM guest = 1. Install the [https://support.mayfirst.org/wiki/install_debian_kvm_manager kvm-manager] scripts 1. Run kvm-creator to create the new LV for the guest and the needed directory and files in /etc/sv/kvm/: {{{ USAGE: kvm-creator create|destroy|demo guestname [volumegroup [disksize [ram [tap [mac] ] ] ] }}} 1. Initially it's a good idea to run the demo. This will give you a breakdown of how the server will be created. {{{ kvm-creator demo GUESTNAME }}} 1. After determining the settings you want the machine to have, run the demo command and then the 'create' command. {{{ EXAMPLE WITH OUTPUT: 0 negri:~/preseed-repo/squeeze# kvm-creator demo hay vg_negri0 15G 512 NAME : hay VG : vg_negri0 SIZE : 15G RAM : 512 TAP : tap5 MAC : 02:01:00:00:00:06 DISK : /dev/mapper/vg_negri0-hay 0 negri:~/preseed-repo/squeeze# kvm-creator create hay vg_negri0 15G 512 Adding user `hay' ... Adding new group `hay' (1005) ... Adding new user `hay' (1005) with group `hay' ... Creating home directory `/home/hay' ... Copying files from `/etc/skel' ... Logical volume "hay" created 0 negri:~/preseed-repo/squeeze# }}} 1. Add at least one user to the access list for the new KVM guest's serial console 1. Monkeysphere way: 1. Add a uid to the /home//.monkeysphere/authorized_user_ids file or copy /root/.monkeysphere/authorized_user_ids to /home//.monkeysphere 1. SSH key way 1. Add an SSH key to the /home//.ssh/authorized_keys file 1. Rebuild the monkeysphere-controlled SSH authorized_keys files: {{{ monkeysphere-authentication update-users }}} 1. If you are installing an operating system to the new KVM guest: 1. Customize the details for the server you are installing 1. Edit /root/preseed-repo/squeeze/server-specifics.cfg with the new server's info 1. Change into /usr/local/share/ISOs: {{{ cd /usr/local/share/ISOs }}} 1. Run: {{{ 0 negri: di-maker hay-squeeze.iso /root/preseed-repo/squeeze/preseed.cfg /root/preseed-repo/squeeze/server-specifics.cfg /root/preseed-repo/squeeze/late_command --2011-03-05 15:22:04-- http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux Resolving ftp.nl.debian.org... 130.89.149.21, 2001:610:1908:a000::149:21 Connecting to ftp.nl.debian.org|130.89.149.21|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2417312 (2.3M) [application/octet-stream] Saving to: “linux” 100%[=====================================================================>] 2,417,312 1.81M/s in 1.3s 2011-03-05 15:22:05 (1.81 MB/s) - “linux” saved [2417312/2417312] --2011-03-05 15:22:05-- http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz Reusing existing connection to ftp.nl.debian.org:80. HTTP request sent, awaiting response... 200 OK Length: 6747069 (6.4M) [application/octet-stream] Saving to: “initrd.gz” 100%[=====================================================================>] 6,747,069 3.40M/s in 1.9s 2011-03-05 15:22:07 (3.40 MB/s) - “initrd.gz” saved [6747069/6747069] FINISHED --2011-03-05 15:22:07-- Downloaded: 2 files, 8.7M in 3.2s (2.76 MB/s) 38743 blocks 38772 blocks Enabling BIOS support ... xorriso 0.5.6 : RockRidge filesystem manipulator, libburnia project. 0 negri:/usr/local/share/ISOs# }}} 1. Create a symlink called cd.iso in the /home//vms// directory with a target of the desired ISO: {{{ ln -s /usr/local/share/ISOs/.iso /home//cd.iso }}} 1. Tell runit to start the guest automatically {{{ update-service --add /etc/sv/kvm/SERVER-NAME }}} 1. Log into the new guest via ssh: {{{ ssh SERVER-NAME@HOST-NAME }}} 1. Install an OS: everything should be handled by preseed file