Alex Schultz 2f96a248c8 Add apt-puppetlabs mirroring back
This used to be mirrored, however there were issues when upstream
dropped the PC1 repositories a few months back. The puppet openstack
jobs are still trying to leverage this mirror but it does not exist in
some regions because it was disabled on the afs content. This change
fixes the reprepo configuration to still pull down puppet5/6 for xenial
and strech and add the symlink back to the mirrors.

Change-Id: I71ad5afe086a503d75a365543ad8869e35ef873b
2019-07-11 11:12:14 -06:00

155 lines
3.1 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 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
- ceph-deb-hammer
- ceph-deb-jewel
- ceph-deb-luminous
- ceph-deb-mimic
- deb-docker
- debian
- debian-security
- debian-openstack
- epel
- fedora
- 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: 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: Create mirror virtual host
template:
src: mirror.vhost.j2
dest: /etc/apache2/sites-available/mirror.conf
- 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
- name: Debug config
slurp:
src: /etc/apache2/sites-available/mirror.conf
register: http_config
- name: Show config
debug:
msg: '{{ http_config["content"] | b64decode }}'
# 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 70200M > /dev/null
minute: '0'
hour: '*'