« Previous - Version 48/54 (diff) - Next » - Current version
Mark Donohoe, 05/02/2012 09:38 pm


Package Install Testing

Note: package creation is documented here

Package install testing will use virtual machines along with vm templates and snapshots to accomplish the testing in a quick an timely manner. Snapshots will allow the restore of the system to it's pre-installed state. This will enable quick turnaround for testing.

Below is the list of VM systems that will be used to test 2.0 package testing:

  1. fed15-32.ostt
  2. fed15-64.ostt
  3. u1043-32.ostt
  4. u1043-64.ostt
  5. rhel6-132.ostt
  6. rhel6-164.ostt
  7. u1104-32.ostt
  8. u1104-64.ostt
  9. ubun111032.ostt
  10. ubun111064.ostt
  11. squeze64.ostt

VM Creation

  1. Use the vm client software (vSphere) to create each vm. For each vm, load the following additional software:
  • Jenkins
  • php (including posix features, and php5-xsl)
  • subversion, set up subversion servers file for both root and jenkins
  • java2-runtime (sun version)
  • build-essential
  • phpUnit Installing phpUnit
  • cunit
  • chkconfig (apt-get install chkconfig)
  • after the os is installed, make sure to use the vm client software to install the vmtools on the machine (highlight the vm, right click, guest-> install....
    (NOTE: doesn't seem to work)
  • others per distro (see below)
  1. After each vm is installed, it is cloned as a template so that full recovery is faster.
  2. As part of the initial set up, there should already be an existing vm. If needed, convert the template into a VM, see the page Converting a VM template to an Install VM.
  3. After the vm is working and on the network, take a snapshot (with memory) of it using the vm client software. Take only 1 snapshot. For example, the rhel6-132.ostt vm was snapshoted as rhel6.1-32-beforeInstall, with description of "Machine and os state before package install".

todo need a section on snapshots.

Setting up a Jenkins slave node (the vm)

Jenkins can run jobs on other remote systems. To do that Jenkins needs to be installed on the system. The sections below describe how to set up Jenkins on the different flavors of Linux for the purposes of remote execution. Note that what is described below is not how Jenkins would be installed if it was the Master.

Debian/Ubuntu

  • install java2-runtime (sun version)
  • install deamon
    sudo apt-get install openjdk-6-jre openjdk-6-jre-headless daemon 
    
  • download and install Jenkins, use the right bar to select the version, we have used the LTS releases with good results. Currently using 1.424.6(one back from the latest), the latest LTS is 1.447.1.
  • Stop Jenkins and reset jenkins user password to jenkins.
  • restart jenkins
    sudo /etc/init.d/jenkins start
  • change root passwd to the standard. Ubuntu systems set it so it must be changed.

RedHat/Fedora/CentOS based systems

For all rhel systems, a proxy must be set so yum can reach the outside world. Modify /etc/yum.conf.

proxy=http://lart.usa.hp.com:3128

Fedora

Fedora is the easiest of the rhel based systems. It contains the material needed above without having to go to other repos (except jenkins).

  • add a proxy to yum (see above)
  • install material:
     yum install php php-process emacs subversion

Fedora, RedHat/Centos systems:

  • download jenkins and get the rpm version we want: (use the latest stable LTS)
    wget  http://mirrors.jenkins-ci.org/redhat-stable-rc/jenkins-1.447.1-1.1.noarch.rpm
  • If you can't talk to apache or postgres over the network: Add this to /etc/sysconfig/iptables:
    -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
    -A INPUT -p tcp --dport 5432 -j ACCEPT

The above will enable apache and postgres

now as root

/etc/init.d/postgresql start
works.