Hardware

We have three machines, Dell 1950 III's with

This is how they are setup :

OpenNebula is used as as the cloud controller, with the sunstone interface available via ssh -D tunnel to the SSH jumphost. All VM's instantiated under there are also only available on the private network 10.0.10.x visible via the jump host. The datastore transport is setup to be ssh, so all images are copied over, then instantiated (we could move to nfs, which will drop the time taken dramatically)

The ci.dev.centos.org interface runs on 10.0.10.196 with the nginx instance on hypervisor-1 redirecting http(s) traffic from the public internet to that machine instance.

Jenkins node

Jenkins node is running on '10.0.10.196' with nginx as reverse-proxy to jenkins built-in server (nginx -> nginx -> jenkins).

Credentials for the Jenkins Web UI can be found in the root home directory.

Jenkins node was provisioned using ci-c6-64 template and puppet from https://github.com/athmane/centos-ci-infra, the key used in 'ci-c6-64' template gives you root access.

Updating Jenkins node

We need this procedure to two reasons:

Update procedure:

Adding new jobs in Jenkins

Method 1: Using puppet to create standard jobs

Here's an example on how to create a standard job from puppet

create_jenkins_job {"t_functional-c5-32":
    vm_type => "c5_32",
    git_url => "git://gitorious.org/testautomation/t_functional.git",
}

Method 2: Using Web UI to create jobs (standard or custom)

/usr/local/bin/centos_ci_run VM_TYPE 

Example: /usr/local/bin/centos_ci_run c6_64 

Security

iptables are in place on all three machines. The following services are allowed on the public interface side:

On the private side all traffic from/to 10.0.10.0/24 is allowed. Further more masquerading is in place on K6 to allow outbound traffic from the VMs.

Local Mirror

Using dnsmasq and nginx centosk6.c.o is used as a local mirror for the VMs instantiated for the tests. dnsmasq answers for both mirrorlist.c.o and mirror.c.o with the local IP of centosk6.c.o. Furthermore nginx is enhanced with PHP (php-fpm) to handle/answer the mirrorlist.c.o requests regarding arch/version/repo. This mirror is also used for all three opennebula hosts.

Images and Templates

The following templates are available (users can add their own if they want)

Template

OS

Image

RAM

Disk

ci.dev-c7-64

CentOS-7.0 x64

C7_x64

2048 M

10 G

ci.dev-c6-64

CentOS-6.4 x86_64

C6_x64_withupdates

2048 M

10 G

ci.dev-c6-32

CentOS-6.4 i386

C6_i386_withupdates

2048 M

10 G

ci.dev-c5-64

CentOS-5.9 x86_64

C5_x64_withupdates

2048 M

10 G

ci.dev-c5-32

CentOS-5.9 i386

C5_i386_withupdates

2048 M

10 G

There are currently two sets of images available - both for C5/C6 in both architectures:

The images have been build using projectraindrops.net.

Notes

QaWiki/CiDev (last edited 2014-12-01 17:56:43 by ChristophGaluschka)