8a2289f70a
mod_mem_cache was removed in Apache 2.4 so all the bits of configuration gated by the IfModule are currently irrelevant. The replacement is socache, the in-memory version is "shmcb" (can also hook up to memcache, etc.). Enable the socache module, and switch the cache matching parts to use socache and then fall-back to disk cache (this is what it says this will do in the manual [1]) The other part of this is to turn the CacheQuickHandler off. The manual says about this [2] In the default enabled configuration, the cache operates within the quick handler phase. This phase short circuits the majority of server processing, and represents the most performant mode of operation for a typical server. The cache bolts onto the front of the server, and the majority of server processing is avoided. I won't claim to fully understand how our mod_rewrite rules and mod_proxy all hang together with phases and what-not. But emperically with this turned on (default) we do not seem to get any caching on the tenant status pages, and with it turned off we do. I've deliberately removed IfModule gating as well. This actually hid the problem and made it much more difficult to diagnose; it is much better if these directives just fail to start Apache if we do not have the modules we expect to have. [1] https://httpd.apache.org/docs/2.4/mod/mod_cache_socache.html [2] https://httpd.apache.org/docs/2.4/mod/mod_cache.html#cachequickhandler Change-Id: I4e5f803b9d4fb6c2351cf151a085b93a7fd20f60
144 lines
2.9 KiB
YAML
144 lines
2.9 KiB
YAML
- name: Install apache2
|
|
apt:
|
|
name:
|
|
- apache2
|
|
- apache2-utils
|
|
state: present
|
|
|
|
- name: Apache modules
|
|
apache2_module:
|
|
state: present
|
|
name: "{{ item }}"
|
|
loop:
|
|
- rewrite
|
|
- proxy
|
|
- proxy_http
|
|
- proxy_wstunnel
|
|
- ssl
|
|
- cache
|
|
- cache_disk
|
|
- cache_socache
|
|
- headers
|
|
|
|
- name: Remove old apache config
|
|
file:
|
|
state: absent
|
|
path: '{{ item }}'
|
|
loop:
|
|
- 40-zuul.opendev.org.conf
|
|
- 40-zuul.opendev.org-http.conf
|
|
- 50-zuul.openstack.org.conf
|
|
- 50-zuul.openstack.org-http.conf
|
|
|
|
- name: Copy common log configuration
|
|
copy:
|
|
src: log-combined-cache.conf
|
|
dest: /etc/apache2/conf-available
|
|
register: _log_combined_cache
|
|
|
|
- name: Enable combined cache log config
|
|
command: a2enconf log-combined-cache
|
|
when: _log_combined_cache.changed
|
|
|
|
- name: Copy apache config
|
|
template:
|
|
src: zuul.vhost.j2
|
|
dest: /etc/apache2/sites-enabled/000-default.conf
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify: zuul Reload apache2
|
|
|
|
- name: Copy whitelabel config
|
|
template:
|
|
src: openstack.vhost.j2
|
|
dest: "/etc/apache2/sites-enabled/010-openstack.conf"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify: zuul Reload apache2
|
|
|
|
- name: Copy htcacheclean config
|
|
copy:
|
|
src: apache-htcacheclean.default
|
|
dest: /etc/default/apache-htcacheclean
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: Install logging config
|
|
copy:
|
|
src: logging.conf
|
|
dest: /etc/zuul/web-logging.conf
|
|
|
|
- name: Install fingergw logging config
|
|
copy:
|
|
src: fingergw-logging.conf
|
|
dest: /etc/zuul/fingergw-logging.conf
|
|
|
|
- name: Rotate web logs
|
|
include_role:
|
|
name: logrotate
|
|
vars:
|
|
logrotate_file_name: /var/log/zuul/web.log
|
|
|
|
- name: Rotate web debug logs
|
|
include_role:
|
|
name: logrotate
|
|
vars:
|
|
logrotate_file_name: /var/log/zuul/web-debug.log
|
|
|
|
- name: Rotate fingergw logs
|
|
include_role:
|
|
name: logrotate
|
|
vars:
|
|
logrotate_file_name: /var/log/zuul/fingergw.log
|
|
|
|
- name: Rotate fingergw debug logs
|
|
include_role:
|
|
name: logrotate
|
|
vars:
|
|
logrotate_file_name: /var/log/zuul/fingergw-debug.log
|
|
|
|
- name: Make docker-compose directory
|
|
file:
|
|
state: directory
|
|
path: /etc/zuul-web
|
|
|
|
- name: Install docker-compose file
|
|
copy:
|
|
src: docker-compose.yaml
|
|
dest: /etc/zuul-web/docker-compose.yaml
|
|
|
|
- name: Run docker-compose pull
|
|
shell:
|
|
cmd: docker-compose pull
|
|
chdir: /etc/zuul-web
|
|
|
|
- name: Start containers
|
|
include_tasks: start.yaml
|
|
when: zuul_web_start | bool
|
|
|
|
# We can prune here as it should leave the "latest" tagged images
|
|
# as well as the currently running images.
|
|
- name: Run docker prune to cleanup unneeded images
|
|
shell:
|
|
cmd: docker image prune -f
|
|
|
|
- name: Disable old service
|
|
service:
|
|
name: 'zuul-{{ item }}'
|
|
enabled: no
|
|
failed_when: false
|
|
loop:
|
|
- web
|
|
- fingergw
|
|
|
|
- name: Remove old init scripts
|
|
file:
|
|
state: absent
|
|
path: '/etc/init.d/zuul-{{ item }}'
|
|
loop:
|
|
- web
|
|
- fingergw
|