summaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: f85d5fd58a023495bcc7e0377de51e622dad78f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Setup of jenkins.debian.net
===========================
:Author:           Holger Levsen
:Authorinitials:   holger
:EMail:            holger@layer-acht.org
:Status:           in progress
:lang:             en
:Doctype:          article
:Licence:	   GPLv2

== About jenkins.debian.net

See link:http://jenkins.debian.net/userContent/about.html["about jenkins.debian.net"].

== Setup

=== Installed software that makes jenkins.debian.net run

* jenkins.debian.net runs Debian wheezy.

=== Jenkins

* Currently running the long term support .deb from jenkins-ci.org.
* Jenkins is installed using 'deb http://pkg.jenkins-ci.org/debian-stable binary/' into '/etc/apt/sources.list.d/jenkins.list' and `apt-get update && apt-get install jenkins`.
* I would prefer to run a jenkins package from wheezy-backports.

==== Jenkins plugins

* Jenkins GIT plugin
* Jenkins Subversion Plug-in

* Log Parser Plugin
* HTML Publisher plugin
* Static Analysis Utilities

* Read-only configurations
* SCM Sync Configuration Plugin
* Dependency Graph Viewer Plugin
* Nested View Plugin
* View Job Filters

* Sidebar Link
* Green Balls
* Compact Columns
* Simple Theme Plugin
* Locale plugin
* Jenkins Translation Assistance plugin

=== updating jenkins.debian.net with 'update_jdn.sh'

'update_jdn.sh' is a small hackish script which will install all needed packages, copy their configuration in place, generate the documentation webpages and update all jenkins jobs if needed.

As 'root' run:
----
cd
git clone git://git.debian.org/git/users/holger/jenkins.debian.net.git
cd jenkins.debian.net
./update_jdn.sh
----

'jenkins-job-builder' is the only software which is not covered by this script.

=== Installing jenkins-job-builder

This is the only software which needs manual installation and is not covered by 'update_jdn.sh'

----
pip install python-jenkins

git clone https://github.com/openstack-ci/jenkins-job-builder
cd jenkins-job-builder 
python setup.py install
----

Though actually https://github.com/h01ger/jenkins-job-builder is used atm.

=== Using jenkins-job-builder

'update_jdn.sh' takes care of this too, so this is just for quick documentation. The real documentation is at link:http://ci.openstack.org/jenkins-job-builder/

* run `cd /srv/jenkins/job-cfg ; jenkins-jobs update .` to update jobs
* for testing: `cd /srv/jenkins/job-cfg ; rm test-output/ -r ; mkdir test-output ; jenkins-jobs test . -o test-output/ ; ls test-output/`

=== munin

link://munin-monitoring[Munin] is installed, running with link:http://jenkins.debian.net/munin/[jenkins plugins] not yet published elsewhere.

=== Backup

Currently only the configuration is backed up, but neither the jenkins results nor system logs. But that's at least sufficient to re-setup the system if needed.

* The _etckeeper_ package is installed and automatically keeps '/etc' in '/etc/.git'.
* The _SCM Sync Configuration Plugin_ is installed in Jenkins, putting all Jenkins configuration into '/srv/jenkins.debian.net-scm-sync.git'.
** (This is not ideal yet, because it also puts the generated job configuration there...)

I've cloned these two git repos on my desktop and manually run `git pull`, though in future I'll
FIXME: use a dedicated ssh pubkey and run it via cron.