From 7f90f520b35f9323aec9e301002a991217141706 Mon Sep 17 00:00:00 2001 From: Evgeny Sikachev Date: Mon, 31 Jul 2017 18:00:59 +0000 Subject: [PATCH] Added ability to deploy zuul Change-Id: I2ca5fea220ab339c984be2418f990e424b478b2b --- .../ansible/group_vars/{localhost => all} | 8 +++ .../ansible/roles/common/tasks/main.yml | 5 +- .../ansible/roles/zuul/tasks/main.yml | 64 +++++++++++++++++++ .../roles/zuul/templates}/zuul-merger.service | 2 +- .../roles/zuul/templates}/zuul.service | 2 +- system-configs/ansible/site.yml | 11 +++- 6 files changed, 85 insertions(+), 7 deletions(-) rename system-configs/ansible/group_vars/{localhost => all} (85%) create mode 100644 system-configs/ansible/roles/zuul/tasks/main.yml rename system-configs/{systemd => ansible/roles/zuul/templates}/zuul-merger.service (78%) rename system-configs/{systemd => ansible/roles/zuul/templates}/zuul.service (77%) diff --git a/system-configs/ansible/group_vars/localhost b/system-configs/ansible/group_vars/all similarity index 85% rename from system-configs/ansible/group_vars/localhost rename to system-configs/ansible/group_vars/all index 414de23a..0e2126c2 100644 --- a/system-configs/ansible/group_vars/localhost +++ b/system-configs/ansible/group_vars/all @@ -1,3 +1,7 @@ +# Common params +ci_dir: /opt/ci + +# Jenkins params jenkins_version: 1.651 jenkins_plugins: [ansicolor, antisamy-markup-formatter, ant, bazaar, build-blocker-plugin, build-timeout, conditional-buildstep, copyartifact, credentials, cvs, dashboard-view, @@ -9,3 +13,7 @@ parameterized-trigger, pathignore, postbuild-task, project-stats-plugin, publish publish-over-ssh, rebuild, ruby-runtime, run-condition, scm-api, scp, simple-theme-plugin, ssh-agent, ssh-credentials, ssh-slaves, subversion, timestamper, token-macro, translation, windows-slaves, ws-cleanup, zmq-event-publisher] + +# Zuul params +zuul_user: zuul +zuul_git_url: git://git.openstack.org/openstack-infra/zuul diff --git a/system-configs/ansible/roles/common/tasks/main.yml b/system-configs/ansible/roles/common/tasks/main.yml index b8b52412..6791c764 100644 --- a/system-configs/ansible/roles/common/tasks/main.yml +++ b/system-configs/ansible/roles/common/tasks/main.yml @@ -27,6 +27,7 @@ state: latest with_items: - virtualenv + - tox - name: Create groups for users group: @@ -34,7 +35,7 @@ state: present with_items: - nodepool - - zuul + - "{{ zuul_user }}" - name: Create users user: @@ -43,4 +44,4 @@ group: "{{ item }}" with_items: - nodepool - - zuul + - "{{ zuul_user }}" diff --git a/system-configs/ansible/roles/zuul/tasks/main.yml b/system-configs/ansible/roles/zuul/tasks/main.yml new file mode 100644 index 00000000..6d60dede --- /dev/null +++ b/system-configs/ansible/roles/zuul/tasks/main.yml @@ -0,0 +1,64 @@ +--- +- name: Create zuul directories + file: + path: "{{ item }}" + owner: "{{ zuul_user }}" + group: "{{ zuul_user }}" + mode: 0755 + state: directory + with_items: + - "{{ ci_dir }}/zuul" + - /var/www/zuul + - /etc/zuul + - /var/log/zuul + - /var/lib/zuul + +- name: Create zuul files + file: + path: "{{ item }}" + owner: "{{ zuul_user }}" + group: "{{ zuul_user }}" + mode: 0755 + state: touch + with_items: + - /etc/zuul/layout.yaml + - /var/lib/zuul/times + - /var/log/zuul/gearman-server + +- name: Clone zuul repo + git: + repo: "{{ zuul_git_url }}" + dest: "{{ ci_dir}}/zuul" + become: true + become_user: "{{ zuul_user }}" + +- name: Install zuul to virtualenv + command: tox -e venv --notest + args: + chdir: "{{ ci_dir }}/zuul" + become: true + become_user: "{{ zuul_user }}" + +- name: Run fetch-dependencies + command: "{{ ci_dir }}/zuul/etc/status/fetch-dependencies.sh" + become: true + +- name: Install zuul-ui + command: "cp -r {{ ci_dir }}/zuul/etc/status/public_html /var/www/zuul/" + become: true + become_user: "{{ zuul_user }}" + +- name: Copy zuul units + template: + src: "{{ item }}" + dest: /lib/systemd/system/ + become: true + with_items: + - zuul.service + - zuul-merger.service + +- name: Create zuul symlink + file: + src: "{{ ci_dir }}/zuul/.tox/venv/bin/zuul" + dest: /usr/sbin/zuul-client + state: link diff --git a/system-configs/systemd/zuul-merger.service b/system-configs/ansible/roles/zuul/templates/zuul-merger.service similarity index 78% rename from system-configs/systemd/zuul-merger.service rename to system-configs/ansible/roles/zuul/templates/zuul-merger.service index e54b55a0..1258062e 100644 --- a/system-configs/systemd/zuul-merger.service +++ b/system-configs/ansible/roles/zuul/templates/zuul-merger.service @@ -2,7 +2,7 @@ Description=Zuul merger [Service] -ExecStart=/opt/ci/zuul/venv/bin/zuul-merger -d +ExecStart=/opt/ci/zuul/.tox/venv/bin/zuul-merger -d Restart=on-failure RestartPreventExitStatus=255 Type=idle diff --git a/system-configs/systemd/zuul.service b/system-configs/ansible/roles/zuul/templates/zuul.service similarity index 77% rename from system-configs/systemd/zuul.service rename to system-configs/ansible/roles/zuul/templates/zuul.service index 1e0b3d27..cdaf7dc0 100644 --- a/system-configs/systemd/zuul.service +++ b/system-configs/ansible/roles/zuul/templates/zuul.service @@ -2,7 +2,7 @@ Description=Zuul server [Service] -ExecStart=/opt/ci/zuul/venv/bin/zuul-server -d +ExecStart=/opt/ci/zuul/.tox/venv/bin/zuul-server -d Restart=on-failure RestartPreventExitStatus=255 Type=idle diff --git a/system-configs/ansible/site.yml b/system-configs/ansible/site.yml index 7ca43012..6397dbb3 100644 --- a/system-configs/ansible/site.yml +++ b/system-configs/ansible/site.yml @@ -13,8 +13,13 @@ tasks: - name: Create Jenkins CI directory file: - path: /opt/ci/files - owner: jenkins - group: jenkins + path: "{{ ci_dir }}/files" + owner: "{{ jenkins_user }}" + group: "{{ jenkins_user }}" mode: 0755 state: directory + +- name: Install zuul + hosts: localhost + roles: + - zuul