• By marcoceppi
  • Latest version (#0)
  • precise
  • Stable
  • Edge


Jenkins is a Continous Integration server supporting
flexible continous integration and deployment methodologies
and more.
This charm provides the Jenkins master instance in a

Jenkins Charm for Juju

This charm (along with its companion, jenkins-slave) provide an
easy way to deploy Jenkins on Ubuntu server and scale out
jenkins slaves::

juju deploy jenkins
juju deploy -n 5 jenkins-slave
juju add-relation jenkins jenkins-slave

The default password for the 'admin' account will be auto-generated.

You can set it using::

juju set jenkins password=mypassword

Always change it this way - this account is used by the charm to
manage slave configuration.

Then feel free to expose your jenkins master::

juju expose jenkins

The jenkins UI will be accessible on http://:8080

Extending this charm

If you wish to perform custom configuration of either the master
or slave services, you can branch this charm and add install hooks
into hooks/install.d.

These will be executed when the main install, config-changed or
upgrade-charm hooks are executed (as the config-changed and
upgrade-charm hooks just call install)..

Additional hooks are executed in the context of the install hook
so may use any variables which are defined in this hook.

Bundling Jenkins for Offline Environments

The charm allows specifying specific installation sources to
pull the Jenkins package from (distro, lts, trunk). Installing
from sources other than the distro requires pulling Jenkins
packages from the upstream, remote Jenkins repositories. Users
may wish to deploy a non-distro Jenkins package in an environment
with limited outbound network access. This can be accomplished
by "bundling" a Jenkins package with a local copy of this charm
prior to deploying. Simply branch the charm locally, create a
directory named "files" in the top-level of the tree. Copy the
desired Jenkins package there as "jenkins.deb" and the charm will
install Jenkins using this binary package. This will override the
release config setting. Newer Jenkins packages may be found at:


(string) Admin user username - used to manage slave nodes so please don't change in Jenkins.
(string) If set, enables SSO login and configures that url as endpoint
(string) Admin user password - used to manage slave nodes so please don't change in Jenkins.
(string) Used by the nrpe-external-master subordinate charm. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-memcached-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
(string) Set this to yes to remove any plugins not listed in plugins from the installation.
(int) Number of recent backups to retain
(string) Set to no to allow downloading from an invalid https site.
(string) Tooling to deploy alongside jenkins
git gcc make bzr
(string) Admin username to be used for Jenkins scripts.
(string) API token that belongs to admin username, to be used for Jenkins scripts. To set that, admin username should login by SSO at least once, and retrieve the token found in user/xxx/configure. Each time the API token is changed, it needs to be updated in this config option for the charm
(string) Block device for attached volumes as seen by the VM, will be "scanned" for an unused device when "volume-map" is valid for the unit.
(boolean) If false, a configure-error state will be raised if volume-map[$JUJU_UNIT_NAME] is not set (see "volume-map" below) - see "volume-map" below. If true, service units won't try to use "volume-map" (and related variables) to mount and use external (EBS) volumes, thus storage lifetime will equal VM, thus ephemeral. YOU'VE BEEN WARNED.
(string) Public url of Jenkins frontend, need to be set manually as the public IP for the Apache Jenkins frontend
(string) Cron-formatted schedule for backups
13 4 * * *
(string) Space separated list of plugins to install
(string) Site to download plugin .hpi files from.
(string) Source of Jenkins, options include: - distro: only use the Ubuntu distribution - this is the default and only works on >= Oneiric. - lts: use the most recent Jenkins LTS release. - trunk: use the most recent Jenkins release.
(string) Admin email of Jenkins administrator
(string) Directory to place backups in
(string) YAML map as e.g. "{ jenkins/0: vol-0000010, jenkins/1: vol-0000016 }". Service units will raise a "configure-error" condition if no volume-map value is set for it - it's expected a human to set it properly to resolve it.