Jenkins user documentation
Architecture
System architecture is presented below. It is a master-slave architecture, where each slave is independent from each other and is managed by the master node.
Jobs distribution
Currently each agent runs on the different operating system, so that variety of projects can be built. Jobs distribution presents as follows:
- Master node should only manage slave nodes. It is not supposed to execute any jobs.
- Agent SLC5 is responsible for building: CMSSW_4_2_4.
- Agent SLC6 is responsible for building: CMSSW_6_2_0, CMSSW_7_0_4, CMSSW_7_0_4_RunI and CMSSW_7_0_4_ctpps.
- Agent CC7 currently has no responsibilities.
Directories structure
- Home directory for jenkins user on the master node is /var/lib/jenkins. Its structure is presented below:
/var/lib/jenkins/
├── jobs
│ └── CMSSW_7_0_4
├── logs
├── nodes
│ ├── SLC5
│ └── SLC6
├── plugins
│ ….
├── secrets
├── updates
├── userContent
└── users
└── user
- Home directory for agent user on the slave machine is /var/jenkins (can be set during slave setup - described in technical documentation). Its structure is presented below:
For each plan a dedicated directory is created in /workspace/<plan name>.
/var/jenkins/
├── jdk
├── slave.jar
└── workspace
└── CMSSW_7_0_4
Kerberos authentication
Access to source code repository is protected using Kerberos protocol. Authentication is achieved using a keytab. A keytab is a file containing pairs of Kerberos principals and encrypted keys (which are derived from the Kerberos password). You can use a keytab file to authenticate to various remote systems using Kerberos without entering a password. However, when you change your Kerberos password, you will need to recreate all your keytabs. For more information visit:
https://kb.iu.edu/d/aumh