Version 13 (modified by Jamie McClelland, 11 years ago) (diff)


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 kvm-manager scripts
  2. 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] ] ] ] 
  3. 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
  4. After determining the settings you want the machine to have, run the demo command and then the 'create' command.
    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#
  5. 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/<guestname>/.monkeysphere/authorized_user_ids file or copy /root/.monkeysphere/authorized_user_ids to /home/<guestname>/.monkeysphere
    2. SSH key way
      1. Add an SSH key to the /home/<guestname>/.ssh/authorized_keys file
        1. Rebuild the monkeysphere-controlled SSH authorized_keys files:
          monkeysphere-authentication update-users 
  6. If you are installing an operating system to the new KVM guest:
    1. Customize the details for the server you are installing
      1. First copy /root/preseed-repo/squeeze/example-server-specifics.cfg to <guestname>-server-specifics.cfg
        1. Edit <guestname>-server-specifics.cfg with the new server's info
      2. Change into /usr/local/share/ISOs: cd /usr/local/share/ISOs
      3. Run:
        0 negri: di-maker hay-squeeze.iso /root/preseed-repo/squeeze/preseed.cfg /root/preseed-repo/squeeze/hay-server-specifics.cfg /root/preseed-repo/squeeze/late_command                                    
        --2011-03-05 15:22:04--                                                                                
        Resolving, 2001:610:1908:a000::149:21                                       
        Connecting to||: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--                                                                            
        Reusing existing connection to
        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# 
    2. Create a symlink called cd.iso in the /home/<guestname>/vms/<guestname>/ directory with a target of the desired ISO:
      ln -s  /usr/local/share/ISOs/<some-installer>.iso /home/<guestname/vms/<guestname>/cd.iso

  1. Tell runit to start the guest automatically
    update-service --add /etc/sv/kvm/SERVER-NAME
  2. Log into the new guest via ssh: ssh SERVER-NAME@HOST-NAME
  3. Install an OS: everything should be handled by preseed file