diff --git a/defaults/main.yaml b/defaults/main.yaml index 107c471..816815a 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -54,6 +54,12 @@ zuul_file_scheduler_logging_conf_mode: 0644 zuul_file_scheduler_logging_conf_owner: "{{ zuul_user_name }}" zuul_file_scheduler_logging_conf_src: etc/zuul/scheduler-logging.conf +zuul_file_web_logging_conf_dest: /etc/zuul/web-logging.conf +zuul_file_web_logging_conf_group: "{{ zuul_user_group }}" +zuul_file_web_logging_conf_mode: 0644 +zuul_file_web_logging_conf_owner: "{{ zuul_user_name }}" +zuul_file_web_logging_conf_src: etc/zuul/web-logging.conf + zuul_file_zuul_conf_dest: /etc/zuul/zuul.conf zuul_file_zuul_conf_group: "{{ zuul_user_group }}" zuul_file_zuul_conf_mode: 0644 @@ -100,6 +106,14 @@ zuul_file_zuul_scheduler_service_config_manage: true zuul_file_zuul_scheduler_service_config_group: root zuul_file_zuul_scheduler_service_config_owner: root +zuul_file_zuul_web_service_manage: true +zuul_file_zuul_web_service_group: root +zuul_file_zuul_web_service_owner: root + +zuul_file_zuul_web_service_config_manage: true +zuul_file_zuul_web_service_config_group: root +zuul_file_zuul_web_service_config_owner: root + zuul_service_zuul_executor_daemon_reload: yes zuul_service_zuul_executor_enabled: yes zuul_service_zuul_executor_manage: true @@ -117,3 +131,9 @@ zuul_service_zuul_scheduler_enabled: yes zuul_service_zuul_scheduler_manage: true zuul_service_zuul_scheduler_name: zuul-scheduler.service zuul_service_zuul_scheduler_state: started + +zuul_service_zuul_web_daemon_reload: yes +zuul_service_zuul_web_enabled: yes +zuul_service_zuul_web_manage: true +zuul_service_zuul_web_name: zuul-web.service +zuul_service_zuul_web_state: started diff --git a/files/etc/default/zuul-web b/files/etc/default/zuul-web new file mode 100644 index 0000000..3482b32 --- /dev/null +++ b/files/etc/default/zuul-web @@ -0,0 +1,10 @@ +# This file is generated by Ansible +# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN +# + +# The prefix used when zuul-scheduler was installed. Be sure to update this value +# if you are using a virtualenv. +PREFIX=/usr/local + +# The user used to start zuul-scheduler service. +RUNASUSER=zuul diff --git a/files/etc/systemd/system/zuul-web.service b/files/etc/systemd/system/zuul-web.service new file mode 100644 index 0000000..c88598a --- /dev/null +++ b/files/etc/systemd/system/zuul-web.service @@ -0,0 +1,14 @@ +[Unit] +Description=Zuul Web Service +After=syslog.target network.target + +[Service] +Type=simple +Environment="PREFIX=/usr/local" +Group=zuul +User=zuul +ExecStart=/bin/sh -c "${PREFIX}/bin/zuul-web -d" +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/handlers/main.yaml b/handlers/main.yaml index 09fcc5a..78a6782 100644 --- a/handlers/main.yaml +++ b/handlers/main.yaml @@ -38,3 +38,12 @@ when: zuul_service_zuul_scheduler_manage and zuul_service_zuul_scheduler_state == "started" and not zuul_service_zuul_scheduler.changed + +- name: Reload zuul-web + become: yes + service: + name: zuul-web + state: reloaded + when: zuul_service_zuul_web_manage and + zuul_service_zuul_web_state == "started" and not + zuul_service_zuul_web.changed diff --git a/tasks/config.yaml b/tasks/config.yaml index 5fc3874..0d8e907 100644 --- a/tasks/config.yaml +++ b/tasks/config.yaml @@ -67,6 +67,17 @@ register: zuul_file_scheduler_logging_conf notify: Reload zuul-scheduler +- name: Install web logging file. + become: yes + template: + dest: "{{ zuul_file_web_logging_conf_dest }}" + group: "{{ zuul_file_web_logging_conf_group }}" + mode: "{{ zuul_file_web_logging_conf_mode }}" + owner: "{{ zuul_file_web_logging_conf_owner }}" + src: "{{ zuul_file_web_logging_conf_src }}" + register: zuul_file_web_logging_conf + notify: Reload zuul-web + - name: Install layout configuration. become: yes copy: diff --git a/tasks/service.yaml b/tasks/service.yaml index 7c85646..1c27723 100644 --- a/tasks/service.yaml +++ b/tasks/service.yaml @@ -102,6 +102,36 @@ zuul_file_zuul_scheduler_service_config_src: "{{ __zuul_file_zuul_scheduler_service_config_src }}" when: zuul_file_zuul_scheduler_service_config_src is not defined +- name: Define zuul_file_zuul_web_service_dest. + set_fact: + zuul_file_zuul_web_service_dest: "{{ __zuul_file_zuul_web_service_dest }}" + when: zuul_file_zuul_web_service_dest is not defined + +- name: Define zuul_file_zuul_web_service_mode. + set_fact: + zuul_file_zuul_web_service_mode: "{{ __zuul_file_zuul_web_service_mode }}" + when: zuul_file_zuul_web_service_mode is not defined + +- name: Define zuul_file_zuul_web_service_src. + set_fact: + zuul_file_zuul_web_service_src: "{{ __zuul_file_zuul_web_service_src }}" + when: zuul_file_zuul_web_service_src is not defined + +- name: Define zuul_file_zuul_web_service_config_dest. + set_fact: + zuul_file_zuul_web_service_config_dest: "{{ __zuul_file_zuul_web_service_config_dest }}" + when: zuul_file_zuul_web_service_config_dest is not defined + +- name: Define zuul_file_zuul_web_service_config_mode. + set_fact: + zuul_file_zuul_web_service_config_mode: "{{ __zuul_file_zuul_web_service_config_mode }}" + when: zuul_file_zuul_web_service_config_mode is not defined + +- name: Define zuul_file_zuul_web_service_config_src. + set_fact: + zuul_file_zuul_web_service_config_src: "{{ __zuul_file_zuul_web_service_config_src }}" + when: zuul_file_zuul_web_service_config_src is not defined + - name: Copy zuul-executor service into place. become: yes copy: @@ -195,6 +225,37 @@ register: zuul_file_zuul_scheduler_service_config when: zuul_file_zuul_scheduler_service_config_manage +- name: Copy zuul-web service into place. + become: yes + copy: + dest: "{{ zuul_file_zuul_web_service_dest }}" + group: "{{ zuul_file_zuul_web_service_group }}" + mode: "{{ zuul_file_zuul_web_service_mode }}" + owner: "{{ zuul_file_zuul_web_service_owner }}" + src: "{{ zuul_file_zuul_web_service_src }}" + register: zuul_file_zuul_web_service + when: zuul_file_zuul_web_service_manage + +- name: Create zuul-web service config directory. + become: yes + file: + group: "{{ zuul_file_zuul_web_service_config_group }}" + owner: "{{ zuul_file_zuul_web_service_config_owner }}" + path: "{{ zuul_file_zuul_web_service_dest }}.d" + state: directory + when: zuul_file_zuul_web_service_config_manage + +- name: Copy zuul-web service config into place. + become: yes + template: + dest: "{{ zuul_file_zuul_web_service_config_dest }}" + group: "{{ zuul_file_zuul_web_service_config_group }}" + mode: "{{ zuul_file_zuul_web_service_config_mode }}" + owner: "{{ zuul_file_zuul_web_service_config_owner }}" + src: "{{ zuul_file_zuul_web_service_config_src }}" + register: zuul_file_zuul_web_service_config + when: zuul_file_zuul_web_service_config_manage + - name: Enable zuul-executor service. become: yes systemd: @@ -224,3 +285,13 @@ state: "{{ zuul_service_zuul_scheduler_state }}" register: zuul_service_zuul_scheduler when: zuul_service_zuul_scheduler_manage + +- name: Enable zuul-web service. + become: yes + systemd: + daemon_reload: "{{ zuul_service_zuul_web_daemon_reload }}" + enabled: "{{ zuul_service_zuul_web_enabled }}" + name: "{{ zuul_service_zuul_web_name }}" + state: "{{ zuul_service_zuul_web_state }}" + register: zuul_service_zuul_web + when: zuul_service_zuul_web_manage diff --git a/templates/etc/systemd/system/zuul-web.service.d/centos-7.conf b/templates/etc/systemd/system/zuul-web.service.d/centos-7.conf new file mode 100644 index 0000000..602ac8e --- /dev/null +++ b/templates/etc/systemd/system/zuul-web.service.d/centos-7.conf @@ -0,0 +1,3 @@ +# This file is generated by Ansible +# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN +# diff --git a/templates/etc/systemd/system/zuul-web.service.d/ubuntu-xenial.conf b/templates/etc/systemd/system/zuul-web.service.d/ubuntu-xenial.conf new file mode 100644 index 0000000..602ac8e --- /dev/null +++ b/templates/etc/systemd/system/zuul-web.service.d/ubuntu-xenial.conf @@ -0,0 +1,3 @@ +# This file is generated by Ansible +# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN +# diff --git a/templates/etc/zuul/web-logging.conf b/templates/etc/zuul/web-logging.conf new file mode 100644 index 0000000..b3ff4d3 --- /dev/null +++ b/templates/etc/zuul/web-logging.conf @@ -0,0 +1,49 @@ +[loggers] +keys=root,zuul,gerrit,gear + +[handlers] +keys=console,debug,normal + +[formatters] +keys=simple + +[logger_root] +level=WARNING +handlers=console + +[logger_zuul] +level=DEBUG +handlers=debug,normal +qualname=zuul + +[logger_gerrit] +level=INFO +handlers=debug,normal +qualname=gerrit + +[logger_gear] +level=WARNING +handlers=debug,normal +qualname=gear + +[handler_console] +level=WARNING +class=StreamHandler +formatter=simple +args=(sys.stdout,) + +[handler_debug] +level=DEBUG +class=logging.handlers.WatchedFileHandler +formatter=simple +args=('/var/log/zuul/web-debug.log',) + +[handler_normal] +level=INFO +class=logging.handlers.WatchedFileHandler +formatter=simple +args=('/var/log/zuul/web.log',) + +[formatter_simple] +format=%(asctime)s %(levelname)s %(name)s: %(message)s +datefmt= diff --git a/templates/etc/zuul/zuul.conf b/templates/etc/zuul/zuul.conf index bacda18..9a812ba 100644 --- a/templates/etc/zuul/zuul.conf +++ b/templates/etc/zuul/zuul.conf @@ -32,3 +32,7 @@ git_dir = /var/lib/zuul/git log_config = /etc/zuul/merger-logging.conf pidfile = /var/run/zuul-merger/zuul-merger.pid zuul_url = 127.0.0.1 + +[web] +log_config = /etc/zuul/web-logging.conf +listen_address = 127.0.0.1 diff --git a/tests/test.yaml b/tests/test.yaml index 9ed9a46..9fb1f2a 100644 --- a/tests/test.yaml +++ b/tests/test.yaml @@ -18,6 +18,7 @@ zuul_file_zuul_executor_service_config_src: etc/systemd/system/override.conf.j2 zuul_file_zuul_merger_service_config_src: etc/systemd/system/override.conf.j2 zuul_file_zuul_scheduler_service_config_src: etc/systemd/system/override.conf.j2 + zuul_file_zuul_web_service_config_src: etc/systemd/system/override.conf.j2 zuul_user_name: zuul-test zuul_user_group: zuul-test zuul_git_update: false @@ -34,6 +35,7 @@ - zuul_file_executor_logging_conf - zuul_file_merger_logging_conf - zuul_file_scheduler_logging_conf + - zuul_file_web_logging_conf - zuul_file_layout - zuul_file_zuul_conf - zuul_file_zuul_executor_service @@ -42,9 +44,12 @@ - zuul_file_zuul_merger_service_config - zuul_file_zuul_scheduler_service - zuul_file_zuul_scheduler_service_config + - zuul_file_zuul_web_service + - zuul_file_zuul_web_service_config - zuul_service_zuul_executor - zuul_service_zuul_merger - zuul_service_zuul_scheduler + - zuul_service_zuul_web - name: Ensure zuul_user_name is zuul. shell: /usr/bin/getent passwd zuul-test @@ -168,6 +173,20 @@ - zuul_scheduler_service_config_stat.stat.gr_name == 'root' - zuul_scheduler_service_config_stat.stat.mode == '0644' + - name: Register /etc/systemd/system/zuul-web.service.d/override.conf + stat: + path: /etc/systemd/system/zuul-web.service.d/override.conf + register: zuul_web_service_config_stat + + - name: Assert zuul_web_service_config_stat tests. + assert: + that: + - zuul_web_service_config_stat.stat.exists + - zuul_web_service_config_stat.stat.isreg + - zuul_web_service_config_stat.stat.pw_name == 'root' + - zuul_web_service_config_stat.stat.gr_name == 'root' + - zuul_web_service_config_stat.stat.mode == '0644' + - name: Register /etc/systemd/system/zuul-executor.service stat: path: /etc/systemd/system/zuul-executor.service @@ -210,6 +229,20 @@ - _zuul_scheduler_service_systemd_stat.stat.gr_name == 'root' - _zuul_scheduler_service_systemd_stat.stat.mode == '0644' + - name: Register /etc/systemd/system/zuul-web.service + stat: + path: /etc/systemd/system/zuul-web.service + register: _zuul_web_service_systemd_stat + + - name: Assert _zuul_web_service_systemd_stat tests. + assert: + that: + - _zuul_web_service_systemd_stat.stat.exists + - _zuul_web_service_systemd_stat.stat.isreg + - _zuul_web_service_systemd_stat.stat.pw_name == 'root' + - _zuul_web_service_systemd_stat.stat.gr_name == 'root' + - _zuul_web_service_systemd_stat.stat.mode == '0644' + - name: Ensure zuul-executor is running. become: yes shell: /usr/sbin/service zuul-executor status @@ -224,3 +257,8 @@ become: yes shell: /usr/sbin/service zuul-scheduler status tags: skip_ansible_lint + + - name: Ensure zuul-web is running. + become: yes + shell: /usr/sbin/service zuul-web status + tags: skip_ansible_lint diff --git a/vars/redhat.yaml b/vars/redhat.yaml index 30acb9b..950c0b3 100644 --- a/vars/redhat.yaml +++ b/vars/redhat.yaml @@ -43,3 +43,11 @@ __zuul_file_zuul_scheduler_service_src: etc/systemd/system/zuul-scheduler.servic __zuul_file_zuul_scheduler_service_config_dest: /etc/systemd/system/zuul-scheduler.service.d/override.conf __zuul_file_zuul_scheduler_service_config_mode: 0644 __zuul_file_zuul_scheduler_service_config_src: etc/systemd/system/zuul-scheduler.service.d/centos-7.conf + +__zuul_file_zuul_web_service_dest: /etc/systemd/system/zuul-web.service +__zuul_file_zuul_web_service_mode: 0644 +__zuul_file_zuul_web_service_src: etc/systemd/system/zuul-web.service + +__zuul_file_zuul_web_service_config_dest: /etc/systemd/system/zuul-web.service.d/override.conf +__zuul_file_zuul_web_service_config_mode: 0644 +__zuul_file_zuul_web_service_config_src: etc/systemd/system/zuul-web.service.d/centos-7.conf diff --git a/vars/ubuntu.yaml b/vars/ubuntu.yaml index b9f5af7..c636b4d 100644 --- a/vars/ubuntu.yaml +++ b/vars/ubuntu.yaml @@ -42,3 +42,11 @@ __zuul_file_zuul_scheduler_service_src: etc/systemd/system/zuul-scheduler.servic __zuul_file_zuul_scheduler_service_config_dest: /etc/systemd/system/zuul-scheduler.service.d/override.conf __zuul_file_zuul_scheduler_service_config_mode: 0644 __zuul_file_zuul_scheduler_service_config_src: etc/systemd/system/zuul-scheduler.service.d/ubuntu-xenial.conf + +__zuul_file_zuul_web_service_dest: /etc/systemd/system/zuul-web.service +__zuul_file_zuul_web_service_mode: 0644 +__zuul_file_zuul_web_service_src: etc/systemd/system/zuul-web.service + +__zuul_file_zuul_web_service_config_dest: /etc/systemd/system/zuul-web.service.d/override.conf +__zuul_file_zuul_web_service_config_mode: 0644 +__zuul_file_zuul_web_service_config_src: etc/systemd/system/zuul-web.service.d/ubuntu-xenial.conf