Diff for "Running/LXC"

Not logged in - Log In / Register

Differences between revisions 18 and 20 (spanning 2 versions)
Revision 18 as of 2011-06-22 00:11:05
Size: 3193
Editor: lifeless
Comment: restart cgconfig
Revision 20 as of 2011-06-22 01:11:03
Size: 3351
Editor: lifeless
Comment: how to poweroff
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:
 1. Create a config for your containers
{{{
sudo dd of=/etc/lxc/local.conf << EOF
lxc.network.type=veth
lxc.network.link=virbr0
lxc.network.flags=up
EOF
}}}
Line 40: Line 49:
sudo lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/basic.conf sudo lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/local.conf
Line 44: Line 53:
sudo http_proxy=http://host:port/ lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/basic.conf sudo http_proxy=http://host:port/ lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/local.conf
Line 48: Line 57:
 1. Download the Lucid server ISO  1. Start it
{{{
sudo lxc-start -n lucid-test-lp
}}}
    Ignore the warning about openssh crashing - it restarts on a later event.
    The initial credentials are root:root.
Line 50: Line 64:
 1. Run virt-manager.  1. To stop it log in and run 'poweroff -n'.
Line 52: Line 66:
 1. Double click on localhost(QEMU)
Line 54: Line 67:
 1. click on the New virtual machine icon

 1. follow your nose here, using the ISO as the install media, and allocating no less than 2G of disk and 1G of memory. I suggest 4G if you can spare it.
 1. below this is not yet updated from the vm instructions

This page explains how to set up and run Launchpad (for development) inside a LXC.

Why?

Launchpad development setup makes significant changes to your machine; its nice to be unaffected by those except when you are actually doing such development.

Also, launchpad has some limitations on concurrent testing per-machine and so forth - multiple container's can be used to work around this.

Make a LXC

  1. Install lxc

sudo apt-get install lxc
  1. Work around 800456

sudo apt-get install cgroup-bin
  1. Work around 784093

sudo dd of=/etc/cgconfig.conf << EOF
mount {
 cpu = /sys/fs//cgroup/cpu;
 cpuacct = /sys/fs/cgroup/cpu;
 devices = /sys/fs/cgroup/cpu;
 memory = /sys/fs/cgroup/cpu;
}
EOF
sudo service cgconfig restart
  1. Create a config for your containers

sudo dd of=/etc/lxc/local.conf << EOF
lxc.network.type=veth
lxc.network.link=virbr0
lxc.network.flags=up
EOF
  1. Create a container

sudo lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/local.conf
  • If you want to use a proxy

sudo http_proxy=http://host:port/ lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/local.conf
  • And if you want to set a custom mirror, similar to http_proxy, but set MIRROR= instead.
  1. Start it

sudo lxc-start -n lucid-test-lp
  • Ignore the warning about openssh crashing - it restarts on a later event. The initial credentials are root:root.
  1. To stop it log in and run 'poweroff -n'.
  2. below this is not yet updated from the vm instructions
  3. After its installed, connect to the image and install acpid and openssh-server

  4. Use ssh-copy-id to copy your public key into the VM.
  5. ssh -A <vm IP address> to connect to the VM.

  6. bzr whoami "Your Name <your.email@example.com>" to set your bzr identity in the VM.

  7. You can now follow the getting-started on LP instructions.

References

See also this email thread about running Launchpad in a virtual machine, and this discussion of the differences between running in a chroot environment and running a VM. Running/RemoteAccess has a discussion for how you can configure the VM to allow the host machine to access the web pages, etc.

Alternatively

You can skip some manual steps of installing from an ISO using a command like this:

sudo ubuntu-vm-builder  kvm lucid --domain vm --dest ~/vm/lp-dev \
 --hostname lp-dev \
 --mem 2048 --cpus 2 \
 --components main,universe,multiverse,restricted \
 --mirror http://10.113.3.35:3142/mirror.internode.on.net/pub/ubuntu/ubuntu \
 --libvirt qemu:///system \
 --debug -v \
 --ssh-user-key ~/.ssh/id_rsa.pub --ssh-key ~/.ssh/id_rsa.pub \
 --rootsize 24000 \
 --user $USER

After installation completes, it should show up in your virt-manager menu.

In LXC

It seems like it would be nice to run Launchpad in LXC containers: they should be more efficient than a VM (especially with regard to memory and disk) but more isolated than a chroot. More testing or documentation is needed.