Size: 3486
Comment: and we're done
|
← Revision 113 as of 2021-12-10 15:20:27 ⇥
Size: 0
Comment: use LXD instead; see https://launchpad.readthedocs.io/en/latest/running.html
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was copied from Running/VirtualMachine 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 Bug:800456 {{{ sudo apt-get install cgroup-bin }}} 1. Work around Bug: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. Work around Bug:798476 (optional if you run i386 or have a -tonne- of memory and don't care about 64-bit footprint. Grab the patch from the bug and apply it to /usr/lib/lxc/templates/lxc-lucid. If you're running i386 already or want a 64-bit lxc then do not pass arch= on the lxc-create command line. 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 arch=i386 lxc-create -n lucid-test-lp -t lucid -f /etc/lxc/local.conf }}} If you want to use a proxy {{{ sudo arch=i386 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. Grab the ip address (handed out via libvirt's dhcp server) - you may wish to ssh in rather than using the console (seems to have better termcap experience). {{{ ip addr show dev eth0 | grep 'inet' }}} 1. The new container won't have your proxy / mirror settings preserved. Customise it at this point before going further if you care about this. 1. (Outside the container) grab your user id and username so you can setup a bind mount outside the container: {{{ id -u id -nu }}} 1. Inside the container add the user: {{{ adduser --uid $id $username }}} 1. To stop it now run 'poweroff -n'. 1. Setup a bind mount so you can access your home dir (and thus your LP source code) from within the lxc container: * edit /var/lib/lxc/lucid-test-lp/fstab * Add a line: {{{ /home/$username /var/lib/lxc/lucid-test-lp/rootfs/home/$username none bind 0 0 }}} 1. Start it up again - headless now, we have the ip address from before. {{{ sudo lxc-start -n lucid-test-lp -d }}} 1. ssh <vm IP address> to connect to the VM. Your ssh key is already present because of the bind mount to your home dir. 1. You can now follow the [[Getting|getting-started]] on LP instructions. Be warned that changes in ~ will affect you outside the container. 1. You probably want to follow [[Running/RemoteAccess]] has a discussion for how you can configure things so your non-container browser can access web pages from within the container. = References = = Alternatively = You can also run in a [[Running/Schroot|chroot]] environment or a [[Runnining/VirtualMachine|VM]]. |