- 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 - 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 60000M > /dev/null minute: '0' hour: '*'