- 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]