From 3ea4cd1d65451d84e1a84faa3af15b8b9d63bcf7 Mon Sep 17 00:00:00 2001 From: David Galloway Date: Thu, 3 Aug 2017 11:31:32 -0400 Subject: [PATCH] ansible: Refactor jenkins master role - Spacing/tabs/syntax/quoting - Updated for compatibility with ansible > v2 - Only support Ubuntu Xenial for now Signed-off-by: David Galloway --- ansible/examples/master.yml | 6 ++-- .../roles/ansible-jenkins/handlers/main.yml | 7 ++--- .../roles/ansible-jenkins/tasks/config.yml | 8 ++--- .../ansible-jenkins/tasks/dependencies.yml | 18 +++-------- .../roles/ansible-jenkins/tasks/jenkins.yml | 12 +++----- ansible/roles/ansible-jenkins/tasks/nginx.yml | 30 ++++++++++++++----- ansible/roles/ansible-jenkins/tasks/repo.yml | 27 ----------------- ansible/roles/ansible-jenkins/vars/main.yml | 21 ++++--------- 8 files changed, 45 insertions(+), 84 deletions(-) diff --git a/ansible/examples/master.yml b/ansible/examples/master.yml index cd2a082e..6f3a792f 100644 --- a/ansible/examples/master.yml +++ b/ansible/examples/master.yml @@ -1,8 +1,8 @@ --- -- hosts: jenkins - user: admin - sudo: true +- hosts: jenkins_master + user: cm + become: true roles: - ansible-jenkins vars: diff --git a/ansible/roles/ansible-jenkins/handlers/main.yml b/ansible/roles/ansible-jenkins/handlers/main.yml index 728f7189..6ea5b8f3 100644 --- a/ansible/roles/ansible-jenkins/handlers/main.yml +++ b/ansible/roles/ansible-jenkins/handlers/main.yml @@ -1,9 +1,8 @@ # Safe-restart Jenkins - name: restart jenkins - sudo: yes command: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} safe-restart - name: restart nginx - sudo: yes - action: service name=nginx state=restarted - #command: service nginx restart + service: + name: nginx + state: restarted diff --git a/ansible/roles/ansible-jenkins/tasks/config.yml b/ansible/roles/ansible-jenkins/tasks/config.yml index 16d26b78..efdc8fad 100644 --- a/ansible/roles/ansible-jenkins/tasks/config.yml +++ b/ansible/roles/ansible-jenkins/tasks/config.yml @@ -52,18 +52,14 @@ group: jenkins mode: 0644 -- name: Tell SELinux that we should allow Nginx to talk to Jenkins - seboolean: name=httpd_can_network_connect state=yes persistent=yes - when: ansible_pkg_mgr == "yum" - -- name: copy JJB config file to {{ jenkins_jobs }} +- name: "copy JJB config file to {{ jenkins_jobs }}" synchronize: src: jobs/jenkins-job-builder dest: '{{ jenkins_jobs }}' owner: no group: no -- name: ensure correct ownership of {{ jenkins_jobs }} +- name: "ensure correct ownership of {{ jenkins_jobs }}" file: path: '{{ jenkins_jobs }}' state: directory diff --git a/ansible/roles/ansible-jenkins/tasks/dependencies.yml b/ansible/roles/ansible-jenkins/tasks/dependencies.yml index 3f29e74c..a98bade7 100644 --- a/ansible/roles/ansible-jenkins/tasks/dependencies.yml +++ b/ansible/roles/ansible-jenkins/tasks/dependencies.yml @@ -1,16 +1,6 @@ --- - -- name: epel-release install - yum: name=epel-release - state=present - when: ansible_pkg_mgr == "yum" - -- name: Install RPM dependencies - yum: name={{ item }} state=installed - with_items: jenkins.{{ ansible_pkg_mgr }}.dependencies - when: ansible_pkg_mgr == "yum" - - name: Install DEB dependencies - apt: name={{ item }} state=installed - with_items: jenkins.{{ ansible_pkg_mgr }}.dependencies - when: ansible_pkg_mgr == "apt" + apt: + name: "{{ item }}" + state: installed + with_items: "{{ jenkins.dependencies }}" diff --git a/ansible/roles/ansible-jenkins/tasks/jenkins.yml b/ansible/roles/ansible-jenkins/tasks/jenkins.yml index f94d7ea2..20e3f593 100644 --- a/ansible/roles/ansible-jenkins/tasks/jenkins.yml +++ b/ansible/roles/ansible-jenkins/tasks/jenkins.yml @@ -5,15 +5,11 @@ - include: nginx.yml -- name: Install Jenkins with Yum - yum: name=jenkins state=present +- name: Install Jenkins + apt: + name: jenkins + state: present register: jenkins_install - when: ansible_pkg_mgr == "yum" - -- name: Install Jenkins with Apt - apt: name=jenkins state=present - register: jenkins_install - when: ansible_pkg_mgr == "apt" - include: config.yml diff --git a/ansible/roles/ansible-jenkins/tasks/nginx.yml b/ansible/roles/ansible-jenkins/tasks/nginx.yml index 14f092ed..7fcf9760 100644 --- a/ansible/roles/ansible-jenkins/tasks/nginx.yml +++ b/ansible/roles/ansible-jenkins/tasks/nginx.yml @@ -1,16 +1,24 @@ --- - name: ensure sites-available for nginx - file: path=/etc/nginx/sites-available state=directory + file: + path: /etc/nginx/sites-available + state: directory - name: ensure sites-enable for nginx - file: path=/etc/nginx/sites-enabled state=directory + file: + path: /etc/nginx/sites-enabled + state: directory - name: remove default nginx site - action: file path=/etc/nginx/sites-enabled/default state=absent + file: + path: /etc/nginx/sites-enabled/default + state: absent - name: write nginx.conf - action: template src=../templates/nginx.conf dest=/etc/nginx/nginx.conf + template: + src: templates/nginx.conf + dest: /etc/nginx/nginx.conf - name: write jenkins SSL public cert copy: @@ -22,12 +30,20 @@ when: ansible_pkg_mgr == 'apt' - name: create nginx site config - action: template src=../templates/jenkins.conf dest=/etc/nginx/sites-available/jenkins.conf + template: + src: templates/jenkins.conf + dest: /etc/nginx/sites-available/jenkins.conf notify: - restart nginx - name: link nginx config - action: file src=/etc/nginx/sites-available/jenkins.conf dest=/etc/nginx/sites-enabled/jenkins.conf state=link + file: + src: /etc/nginx/sites-available/jenkins.conf + dest: /etc/nginx/sites-enabled/jenkins.conf + state: link - name: Enable Nginx service - service: name=nginx enabled=yes state=started + service: + name: nginx + enabled: yes + state: started diff --git a/ansible/roles/ansible-jenkins/tasks/repo.yml b/ansible/roles/ansible-jenkins/tasks/repo.yml index 5ee036c6..5b17792c 100644 --- a/ansible/roles/ansible-jenkins/tasks/repo.yml +++ b/ansible/roles/ansible-jenkins/tasks/repo.yml @@ -1,38 +1,11 @@ --- - -# Yum - -- name: Install python-devel - yum: name=python-devel state=present - when: ansible_pkg_mgr == "yum" - -- name: Install python-pycurl - yum: name=python-pycurl state=present - when: ansible_pkg_mgr == "yum" - -- name: Add Jenkins GPG Key - rpm_key: state=present key=https://jenkins-ci.org/redhat/jenkins-ci.org.key - when: ansible_pkg_mgr == "yum" - -- name: Create the repo file for Jenkins - copy: src=jenkins.repo - dest=/etc/yum.repos.d/ - owner=root - group=root - mode=0644 - when: ansible_pkg_mgr == "yum" - -# Apt - - name: Add Jenkins GPG Key apt_key: url: "https://jenkins-ci.org/debian/jenkins-ci.org.key" state: present - when: ansible_pkg_mgr == "apt" - name: Add the jenkins repo apt_repository: repo: 'deb http://pkg.jenkins-ci.org/debian binary/' state: present update_cache: true - when: ansible_pkg_mgr == "apt" diff --git a/ansible/roles/ansible-jenkins/vars/main.yml b/ansible/roles/ansible-jenkins/vars/main.yml index 9f409225..5f975fd1 100644 --- a/ansible/roles/ansible-jenkins/vars/main.yml +++ b/ansible/roles/ansible-jenkins/vars/main.yml @@ -3,20 +3,11 @@ jenkins_dest: /opt/jenkins jenkins_lib: /var/lib/jenkins jenkins_jobs: '{{ jenkins_lib }}/jobs' jenkins: - yum: - #repo: 'deb http://pkg.jenkins-ci.org/debian binary/' # Jenkins repository - dependencies: # Jenkins dependencies - #- 'openjdk-7-jre' - - 'java-1.7.0-openjdk' - - 'git' - - 'curl' - - 'nginx' - config_file: '/etc/sysconfig/jenkins' - apt: - dependencies: # Jenkins dependencies - - 'git' - - 'curl' - - 'nginx' - config_file: '/etc/default/jenkins' + dependencies: # Jenkins dependencies + - 'git' + - 'curl' + - 'nginx' + - 'default-jdk' + config_file: '/etc/default/jenkins' cli_dest: '{{ jenkins_dest }}/jenkins-cli.jar' # Jenkins CLI destination updates_dest: '{{ jenkins_dest }}/updates_jenkins.json' # Jenkins updates file -- 2.39.5