system-config/playbooks/roles/mirror/tasks/main.yaml
Clark Boylan 847a835d3a Limit linaro mirror Apache cache size
The linaro mirror node only has a 100GB cache volume to be shared
between OpenAFS and Apache. Each cache gets a ~50GB filesystem dedicated
to it. Unfortunately we were telling Apache's cache pruning system to
limit to 60000M which is large than 50GB. THis resulted in the cache
filling up and I think it may also be the source of errors.

Address this my reconfiguring htcacheclean to limit to ~40GB. This limit
is set with some buffer space as htcacheclean runs periodically and has
to keep things low enough to avoid filling up.

Change-Id: I7af3daa396b1631feefed5952460b8a9710b25b5
2024-07-12 11:29:36 -07:00

174 lines
3.5 KiB
YAML

- name: Check AFS mounted
stat:
path: "/afs/openstack.org/mirror"
register: afs_mirror
- name: Sanity check AFS
assert:
that:
- afs_mirror.stat.exists
- name: Install apache2
apt:
name:
- apache2
- apache2-utils
state: present
- name: Rewrite module
apache2_module:
state: present
name: rewrite
- name: Substitute module
apache2_module:
state: present
name: substitute
- name: Cache module
apache2_module:
state: present
name: cache
- name: Cache disk module
apache2_module:
state: present
name: cache_disk
- name: Proxy module
apache2_module:
state: present
name: proxy
- name: HTTP Proxy module
apache2_module:
state: present
name: proxy_http
- name: Apache macro module
apache2_module:
state: present
name: macro
- name: Apache 2 ssl module
apache2_module:
state: present
name: ssl
- name: Apache headers module
apache2_module:
state: present
name: headers
- name: Apache webroot
file:
path: '{{ www_base }}'
state: directory
owner: root
group: root
- name: Apache www root
file:
path: '{{ www_root }}'
state: directory
owner: root
group: root
- name: AFS content symlinks
file:
src: '{{ mirror_root }}/{{ item }}'
dest: '{{ www_root }}/{{ item }}'
state: link
owner: root
group: root
follow: false
with_items:
- apt-puppetlabs
- centos
- centos-stream
- ceph-deb-nautilus
- ceph-deb-octopus
- ceph-deb-quincy
- ceph-deb-reef
- deb-docker
- debian
- debian-security
- debian-openstack
- epel
- fedora
- logs
- openeuler
- opensuse
- ubuntu
- ubuntu-ports
- ubuntu-cloud-archive
- wheel
- yum-puppetlabs
- name: Install robots.txt
copy:
src: robots.txt
dest: '{{ www_root }}'
owner: root
group: root
mode: 0444
- name: Install wheel_header.html
copy:
src: wheel_header.html
dest: '{{ www_base }}'
owner: root
group: root
mode: 0444
- name: Apache proxy cache
file:
path: /var/cache/apache2/proxy
owner: www-data
group: www-data
mode: 0755
state: directory
- name: Set mirror servername and alias
set_fact:
apache_server_name: '{{ inventory_hostname }}'
# Strip the numeric host value (like mirror01.region.provider.o.o
# becomes mirror.region...) for the serveralias
apache_server_alias: '{{ inventory_hostname | regex_replace("^mirror\d\d\.", "mirror.") }}'
- name: Copy apache tuning
copy:
src: apache-connection-tuning
dest: /etc/apache2/conf-enabled/connection-tuning.conf
owner: root
group: root
mode: 0644
notify: restart apache2
- name: Create mirror virtual host
template:
src: mirror.vhost.j2
dest: /etc/apache2/sites-available/mirror.conf
notify:
- reload apache2
- name: Make sure default site disabled
command: a2dissite 000-default.conf
args:
removes: /etc/apache2/sites-enabled/000-default.conf
- name: Enable mirror virtual host
command: a2ensite mirror
args:
creates: /etc/apache2/sites-enabled/mirror.conf
notify:
- restart apache2
# Clean apache cache once an hour, keep size down to 70GiB.
- name: Proxy cleanup cron job
cron:
name: Apache cache cleanup
state: present
job: /usr/bin/flock -n /var/run/htcacheclean.lock /usr/bin/htcacheclean -n -p /var/cache/apache2/proxy -t -l {{ mirror_apache_cache_limit }} > /dev/null
minute: '0'
hour: '*'