Build Status

Jenkins CI

Use this role to add a jenkins CI/CD service to your Ansible Container project.

Run the following to install the service:

# Set the working directory to your Ansible Container project root
$ cd myproject

# Install the service
$ ansible-container install awasilyev.jenkins-container

Post Installation

Connecting

In container.yml the Jenkins server port is mapped to host port 8080. If you're using Docker Engine or Docker for Mac to run the service, connect to the web console at http://localhost:8080.

Persisting data

Jenkins data, plugins, artifacts, etc. are written to /var/lib/jenkins. During container runtime, if you want to persist this data between container runs, add a volume directive to container.yml that maps a host path or named volume to this path.

During the build process /var/lib/jenkins is destroyed and recreated, thus clearing any existing Jenkins data. This is done so that if the service is deployed to a cluster, such as OpenShift, where the service is not gauranteed to run as user jenkins, there won't be any secret or key files left over from the build process that are exclusively read-only by the jenkins user. So for obvious reasons, do not mount a volume to this path during the image build.

Configuring

On startup the jenkins container executes /usr/bin/startup_jenkins.sh to install plugins, and launch the Jenkins process. Any parameters passed to this script via the command directive in container.yml will be appended to the java command used to launch Jenkins. View start_jenkins.sh.j2 for a look at the template used to create this script during image build.

See Environment Variables, and Role Variables below for details on setting the admin credentials, installing plugins, passing additional Java options, and determining the Jenkins version to install.

Environment Variables

The following variables are defined in container.yml, and set as environment variables in the jenkins container:

JENKINS_ADMIN_USERNAME: admin

Set the username for jenkins admin user.

JENKINS_ADMIN_PASSWORD: admin

Set the password for jenkins admin user.

JENKINS_JAVA_OPTIONS: ""

Provide additional options to the java command used to launch Jenkins in the container startup script, /start_jenkins.sh.

JENKINS_PLUGINS: ""

Provide a comma-separated list of plugins.

Role Variables

jenkins_version: latest

Set to a specific version of Jenkins to install during image build, or 'latest' to install the latest version.

jenkins_dependencies: []

List of packages to be installed during image build. The list in defaults/main.yml, will be added to the project main.yml when the role installed. Add any additional packages that may be required by any plugins you plan to install. For example, if you plan to install the git plugin, it depends on the git package being installed.

Dependencies

None.

License

MIT/BSD

Author Information

@awasilyev

based on original jenkins role