Changes between Version 4 and Version 5 of GIB-Ubuntu-Instructions


Ignore:
Timestamp:
10/17/12 09:28:08 (12 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GIB-Ubuntu-Instructions

    v4 v5  
    1 = Setting up GENI-in-a-Box Development Environment for Ubuntu 10.04 =
    21
    3 Setting up the environment consists of installing OpenVZ to the Ubuntu OS, and optionally Python 2.7. Since Python 2.6 comes on Ubuntu 10.04 and is enough to satisfy the development requirements the instructions for installing Python 2.7 are omitted for the time being. The main development requirement that needs to be installed is OpenVZ.
    4 
    5 These instructions have been taken mostly from https://help.ubuntu.com/community/OpenVZ with some modifications. The instructions on that page are outdated or broken in some areas. The correct installation is below. The original instructions state OpenVZ can be installed from RPM files, but some of the dependencies are broken. The best way to install OpenVZ on Ubuntu 10.04 is to use the set of instructions below. These instructions only apply to the desktop version referred to in step 1.
    6 
    7 === Setting up OpenVZ ===
    8 
    9 1. Create a [https://www.virtualbox.org VirtualBox] container, and install Ubuntu 10.04 LTS from http://releases.ubuntu.com/lucid/ubuntu-10.04.4-desktop-i386.iso. For easy use you can optionally install Guest Additions on the Ubuntu VM to copy-paste commands in the terminal from your host machine. This first step should have been done before getting to this page, but is mentioned to double check before proceeding.
    10 
    11 2. Before getting started make sure the machine is up to date.
    12 {{{
    13 sudo apt-get update
    14 sudo apt-get upgrade
    15 }}}
    16 
    17 3. Reconfigure dash. When the "Configuring dash" screen appears select NO.
    18 {{{
    19 sudo dpkg-reconfigure dash
    20 }}}
    21 
    22 4. Install required packages to compile the kernel. This will be needed when the OpenVZ kernel is compiled.
    23 {{{
    24 sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 module-assistant debhelper build-essential bridge-utils
    25 }}}
    26 
    27 5. Set the following variables that will be used.
    28 {{{
    29 Variant="linux-image-generic"
    30 VersionAppendix="-openvz"
    31 MyConfigFile="kernel-2.6.32-i686.config.ovz"
    32 }}}
    33 
    34 6. Set the build dependencies for OpenVZ.
    35 {{{
    36 Package="$(apt-cache showpkg $Variant | grep "^2\.6\.32" | grep "linux-image")"
    37 Package=$(ReturnWord () { echo $3; }; ReturnWord $Package)
    38 sudo apt-get build-dep --no-install-recommends $Package
    39 }}}
    40 
    41 7. Prepare the linux headers before compiling, and create the configuration for the kernel.
    42 {{{
    43 sudo m-a prepare
    44 sudo kernel-packageconfig
    45 }}}
    46 
    47 9. Set up multi-core support. This step may not be necessary if your VM is only using one core, but it does not hurt to execute this line anyway.
    48 {{{
    49 Cores=$(Nr () { echo $#; }; Nr $(grep "processor" /proc/cpuinfo | cut -f2 -d":"))
    50 echo "CONCURRENCY_LEVEL := $(($Cores + 1))" | sudo tee -a /etc/kernel-pkg.conf
    51 }}}
    52 
    53 10. Download the linux kernel source code.
    54 {{{
    55 cd /usr/src
    56 sudo wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux_2.6.32.orig.tar.gz
    57 }}}
    58 
    59 11. Get the OpenVZ patch for the linux kernel, and the OpenVZ kernel itself.
    60 {{{
    61 sudo wget http://download.openvz.org/kernel/branches/2.6.32/current/patches/patch-feoktistov.1-combined.gz
    62 sudo wget http://download.openvz.org/kernel/branches/2.6.32/current/configs/$MyConfigFile
    63 }}}
    64 
    65 12. Unpack the source code.
    66 {{{
    67 sudo rm -fR linux-2.6.32
    68 sudo tar -xpf linux_2.6.32.orig.tar.gz
    69 sudo rm -fR "linux-2.6.32$VersionAppendix"
    70 sudo mv linux-2.6.32 "linux-2.6.32$VersionAppendix"
    71 sudo rm linux
    72 sudo ln -s "linux-2.6.32$VersionAppendix" linux
    73 }}}
    74 
    75 13. Apply the OpenVZ patch to the kernel.
    76 {{{
    77 cd /usr/src/linux
    78 sudo gunzip -dc /usr/src/patch-feoktistov.1-combined.gz | sudo patch -p1 --batch
    79 sudo cp -f "/usr/src/$MyConfigFile" .config
    80 sudo make oldconfig
    81 }}}
    82 
    83 14. One of the make files has a bug in it that needs to be fixed.
    84 {{{
    85 sudo gedit Documentation/lguest/Makefile
    86 }}}
    87 
    88 Change the following lines;
    89 {{{
    90 all: lguest
    91 
    92 clean:
    93         rm -f lguest
    94 }}}
    95 
    96 To be the following;
    97 {{{
    98 all:
    99 
    100 clean:
    101         rm -f lguest
    102 }}}
    103 
    104 15. Now build the OpenVZ kernel. '''WARNING''': This may take some time, upwards of 1 or 2 hours.
    105 {{{
    106 cd /usr/src/linux
    107 sudo make-kpkg --initrd --append-to-version=$VersionAppendix --revision=1 kernel_image kernel_headers
    108 }}}
    109 
    110 16. Install the OpenVZ kernels that were just built.
    111 {{{
    112 cd /usr/src
    113 sudo dpkg -i linux-image-2.6.32.28-openvz_1_i386.deb
    114 sudo dpkg -i linux-headers-2.6.32.28-openvz_1_i386.deb
    115 }}}
    116 
    117 17. Setup the grub menu to load the OpenVZ kernel at boot.
    118 {{{
    119 sudo mkinitramfs -k 2.6.32.28-openvz -o /boot/initrd.img-2.6.32.28-openvz
    120 sudo update-grub
    121 }}}
    122 
    123 18. Create a new internet configuration.
    124 {{{
    125 sudo gedit /etc/sysctl.d/10-openvz.conf
    126 }}}
    127 
    128 Place the following text in the file.
    129 {{{
    130 ### Optimized for Ubuntu 10.04
    131 # vim:ft=sysctl
    132 # sysctl config for OpenVZ
    133 #net.ipv4.ip_forward=1
    134 
    135 net.ipv4.conf.default.forwarding = 1
    136 net.ipv4.conf.default.proxy_arp = 1
    137 net.ipv4.ip_forward = 1
    138 
    139 # Enables source route verification
    140 net.ipv4.conf.all.rp_filter = 1
    141 
    142 # Enables the magic-sysrq key
    143 kernel.sysrq = 1
    144 
    145 # TCP Explict Congestion Notification
    146 #net.ipv4.tcp_ecn = 0
    147 
    148 # we do not want all our interfaces to send redirects
    149 net.ipv4.conf.default.send_redirects = 0
    150 }}}
    151 
    152 
    153 19. Apply the changes to the network configuration.
    154 {{{
    155 sudo sysctl -p /etc/sysctl.d/10-openvz.conf
    156 }}}
    157 
    158 20. Install the tools used by OpenVZ for managing containers.
    159 {{{
    160 sudo apt-get install --no-install-recommends vzctl vzquota vzdump
    161 }}}
    162 
    163 21. Create a symlink to be FHS-compliant and then reboot.
    164 {{{
    165 sudo ln -s /var/lib/vz /vz
    166 sudo reboot
    167 }}}
    168 
    169 22. Once rebooted, check to make sure the correct kernel was started.
    170 {{{
    171 uname -r
    172 }}}
    173 
    174     The result of that command should be something similar to "2.6.32.28-openvz".
    175 
    176 23. Open a web browser and navigate to a website to make sure the internet configurations were set properly. If there is no internet connection check step 18 and that the text in the file 10-openvz.conf is correct.
    177 
    178 24. Finally, download the Ubuntu 10.04 OpenVZ container template.
    179 {{{
    180 cd /vz/template/cache/
    181 sudo wget http://download.openvz.org/template/precreated/ubuntu-10.04-x86.tar.gz
    182 }}}
    183 
    184 
    185 === Testing OpenVZ in Ubuntu 10.04 ===
    186 
    187 1. From a terminal try to create an OpenVZ container.
    188 {{{
    189 sudo vzctl create 101 --ostemplate=ubuntu-10.04-x86
    190 }}}
    191 
    192     There should be no errors seen from this command. It will take about a minute to create the container.
    193 
    194 2. Start the container to make sure it was created properly.
    195 {{{
    196 sudo vzctl start 101
    197 }}}
    198 
    199 3. Stop and destroy the test container.
    200 {{{
    201 sudo vzctl stop 101
    202 sudo vzctl destroy 101
    203 }}}
    204 
    205 If these commands failed refer to the OpenVZ documentation on vzctl create/start/stop/destroy. If any of the commands cannot be found refer back to step 20 and make sure the packages were installed.
    206 
    207 If no errors were encountered you have successfully installed OpenVZ on Ubuntu 10.04.
     2This page has been moved to http://groups.geni.net/geni/wiki/GENI-in-a-Box/GiB-Implementation/Ubuntu-Instructions