--- /dev/null
+- hosts: localhost
+ vars:
+ jenkins_hostname: "{{ ansible_default_ipv4.address }}"
+ jenkins_version: 2.192
+ jenkins_plugin_timeout: 360
+ jenkins_plugins:
+ - gerrit-trigger
+ - workflow-aggregator
+ - git
+ roles:
+ - role: geerlingguy.java
+ become: yes
+ - role: geerlingguy.jenkins
+ become: yes
+ tasks:
+ - name: restart jenkins to use new installed plugins
+ meta: flush_handlers
+
+ - name: Wait for Jenkins to start up before proceeding.
+ command: >
+ curl -D - --silent --max-time 5 http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}/cli/
+ args:
+ warn: false
+ register: result
+ until: >
+ (result.stdout.find("403 Forbidden") != -1)
+ or (result.stdout.find("200 OK") != -1)
+ and (result.stdout.find("Please wait while") == -1)
+ retries: "{{ jenkins_connection_retries | default(60) }}"
+ delay: "{{ jenkins_connection_delay | default(5) }}"
+ changed_when: false
+ check_mode: false
+
+ - name: create directory /var/lib/jenkins/.ssh
+ file:
+ path: /var/lib/jenkins/.ssh
+ owner: jenkins
+ group: jenkins
+ state: directory
+
+ - name: place gerrit ssh key
+ copy:
+ src: "{{ gerrit_key_path | default('gerrit.key') }}"
+ dest: /var/lib/jenkins/.ssh/gerrit.key
+ owner: jenkins
+ group: jenkins
+ mode: '0600'
+ tags: [gerrit]
+
+ - name: grant jenkins user sudo
+ copy:
+ content: "jenkins ALL=(ALL) NOPASSWD: ALL"
+ dest: /etc/sudoers.d/jenkins
+ owner: root
+ group: root
+ mode: '0660'
+ tags: [gerrit]
+
+ - name: add gerrit server
+ jenkins_script:
+ script: "{{lookup('file', 'gerrit.groovy')}}"
+ url: "http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}"
+ user: "{{ jenkins_admin_username }}"
+ password: "{{ jenkins_admin_password }}"
+ validate_certs: no
+ register: result
+ failed_when: "'Result: success\n' != result.output"
+ tags: [gerrit]
+
+ - name: Install python-pip
+ apt:
+ name: python-pip
+ tags: [jobs]
+
+ - name: Install python-jenkins and lxml(required by jenkins_job module)
+ pip:
+ name:
+ - python-jenkins
+ - lxml
+ tags: [jobs]
+
+ - name: Add pipeline job for ICN CI
+ jenkins_job:
+ name: icn_check
+ config: "{{lookup('file', 'icn_check.xml')}}"
+ url: "http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}"
+ user: "{{ jenkins_admin_username }}"
+ password: "{{ jenkins_admin_password }}"
+ tags: [jobs]