Skip to content
Ansible playbook: Jenkins
Branch: development
Clone or download
Pull request Compare This branch is 2 commits ahead, 67 commits behind ICTO:development.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
defaults
files
handlers
tasks
vars
.gitignore
LICENCE
Readme.md

Readme.md

Readme

Description

ansible-jenkins is an Ansible role. Use this role to install Jenkins and install/update plugins.

Provides

  1. Latest Jenkins server
  2. Jenkins plugins support

Requires

  1. Ansible 1.4 or higher
  2. Debian 7.3 (other deb-based distros should work too)
  3. Vagrant (optional)

Usage

Get the code

$ git clone git@github.com:ICTO/ansible-jenkins.git

The code should reside in the roles directory of ansible ( See ansible documentation for more information on roles ), in a folder jenkins.

Create a host file

Following example make ansible aware of the Vagrant box reachable on localhost port 2222.

$ vi ansible.host

with

[jenkins]
127.0.0.1 ansible_ssh_port=2222

Create host specific variables

Make the host_vars directory where ansible.host file is located.

$ mkdir host_vars

Create a file in the newly created directory matching your host.

$ cd host_vars
$ vi 127.0.0.1

with

---
plugins:
  - 'ldap'
  - 'github'
  - 'translation'
  - 'preSCMbuildstep'

Run the playbook

First create a playbook including the jenkins role, naming it jenkins.yml.

- name: Jenkins
  hosts: jenkins
  roles:
    - ansible-jenkins

Use ansible.host as inventory. Run the playbook only for the remote host jenkins. Use vagrant as the SSH user to connect to the remote host. -k enables the SSH password prompt.

$ ansible-playbook -k -i ansible.host jenkins.yml -u vagrant

Example output

SSH password: 

PLAY [Jenkins] **************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Install python-software-properties] ****************** 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Add jenkins apt-key] ********************************* 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Add Jenkins repository] ****************************** 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Install dependencies] ******************************** 
ok: [127.0.0.1] => (item=openjdk-6-jre)
ok: [127.0.0.1] => (item=openjdk-6-jdk)
ok: [127.0.0.1] => (item=git)
ok: [127.0.0.1] => (item=curl)

TASK: [ansible-jenkins | Install Jenkins] ************************************* 
ok: [127.0.0.1]

TASK: [ansible-jenkins | 10s delay while starting Jenkins] ******************** 
skipping: [127.0.0.1]

TASK: [ansible-jenkins | Create Jenkins CLI destination directory: /opt/jenkins] *** 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Get Jenkins CLI] ************************************* 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Get Jenkins updates] ********************************* 
ok: [127.0.0.1]

TASK: [ansible-jenkins | Update-center Jenkins] ******************************* 
skipping: [127.0.0.1]

TASK: [ansible-jenkins | List plugins] **************************************** 
skipping: [127.0.0.1]

TASK: [ansible-jenkins | Install/update plugins] ****************************** 
skipping: [127.0.0.1] => (item=plugins)

TASK: [ansible-jenkins | List plugins to be updated] ************************** 
changed: [127.0.0.1]

TASK: [ansible-jenkins | Update plugins] ************************************** 
skipping: [127.0.0.1]

PLAY RECAP ******************************************************************** 
127.0.0.1                  : ok=11   changed=1    unreachable=0    failed=0  
You can’t perform that action at this time.