Remove puppet mirror support
Remove the separate "mirror_opendev" group and rename it to just "mirror". Update various parts to reflect that change. We no longer deploy any mirror hosts with puppet, remove the various configuration files. Depends-On: https://review.opendev.org/728345 Change-Id: Ia982fe9cb4357447989664f033df976b528aaf84
This commit is contained in:
parent
6acc2dca98
commit
45201f3d66
@ -4,7 +4,7 @@ groups:
|
|||||||
afs: afs[0-9]*.open*.org
|
afs: afs[0-9]*.open*.org
|
||||||
afs-client:
|
afs-client:
|
||||||
- review-dev[0-9]*.open*.org
|
- review-dev[0-9]*.open*.org
|
||||||
- mirror[0-9]*.open*.org
|
- mirror[0-9]*.opendev.org
|
||||||
- mirror-update[0-9]*.opendev.org
|
- mirror-update[0-9]*.opendev.org
|
||||||
- ze[0-9]*.open*.org
|
- ze[0-9]*.open*.org
|
||||||
- afsdb*.open*.org
|
- afsdb*.open*.org
|
||||||
@ -40,7 +40,6 @@ groups:
|
|||||||
- ethercalc01.openstack.org
|
- ethercalc01.openstack.org
|
||||||
- idp.openstackid.org
|
- idp.openstackid.org
|
||||||
- lists-dev01.openstack.org
|
- lists-dev01.openstack.org
|
||||||
- mirror01.sto2.citycloud.openstack.org
|
|
||||||
- wiki-dev01.openstack.org
|
- wiki-dev01.openstack.org
|
||||||
- wiki-upgrade-test.openstack.org
|
- wiki-upgrade-test.openstack.org
|
||||||
dns:
|
dns:
|
||||||
@ -90,8 +89,6 @@ groups:
|
|||||||
meetpad:
|
meetpad:
|
||||||
- meetpad[0-9]*.opendev.org
|
- meetpad[0-9]*.opendev.org
|
||||||
mirror:
|
mirror:
|
||||||
- mirror[0-9]*.openstack.org
|
|
||||||
mirror_opendev:
|
|
||||||
- mirror[0-9]*.opendev.org
|
- mirror[0-9]*.opendev.org
|
||||||
mirror-update:
|
mirror-update:
|
||||||
- mirror-update[0-9]*.opendev.org
|
- mirror-update[0-9]*.opendev.org
|
||||||
@ -136,7 +133,6 @@ groups:
|
|||||||
- logstash-worker[0-9]*.open*.org
|
- logstash-worker[0-9]*.open*.org
|
||||||
- logstash[0-9]*.open*.org
|
- logstash[0-9]*.open*.org
|
||||||
- mirror-update[0-9]*.openstack.org
|
- mirror-update[0-9]*.openstack.org
|
||||||
- mirror[0-9]*.openstack.org
|
|
||||||
- nb[0-9]*.openstack.org
|
- nb[0-9]*.openstack.org
|
||||||
- openstackid-dev*.openstack.org
|
- openstackid-dev*.openstack.org
|
||||||
- openstackid.org
|
- openstackid.org
|
||||||
@ -175,7 +171,6 @@ groups:
|
|||||||
- logstash-worker[0-9]*.open*.org
|
- logstash-worker[0-9]*.open*.org
|
||||||
- logstash[0-9]*.open*.org
|
- logstash[0-9]*.open*.org
|
||||||
- mirror-update[0-9]*.openstack.org
|
- mirror-update[0-9]*.openstack.org
|
||||||
- ^mirror[0-9].*\..*\.(?!linaro|linaro-london|linaro-us).*\.openstack\.org
|
|
||||||
- ^nb(?!03)[0-9]*\.openstack\.org
|
- ^nb(?!03)[0-9]*\.openstack\.org
|
||||||
- openstackid[0-9]*.openstack.org
|
- openstackid[0-9]*.openstack.org
|
||||||
- openstackid-dev[0-9]*.openstack.org
|
- openstackid-dev[0-9]*.openstack.org
|
||||||
|
@ -246,22 +246,6 @@ node /^mirror-update\d*\.open.*\.org$/ {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Machines in each region to serve AFS mirrors.
|
|
||||||
# Node-OS: xenial
|
|
||||||
node /^mirror\d*\..*\.open.*\.org$/ {
|
|
||||||
$group = "mirror"
|
|
||||||
|
|
||||||
class { 'openstack_project::server':
|
|
||||||
afs => true,
|
|
||||||
afs_cache_size => 50000000, # 50GB
|
|
||||||
}
|
|
||||||
|
|
||||||
class { 'openstack_project::mirror':
|
|
||||||
vhost_name => $::fqdn,
|
|
||||||
require => Class['Openstack_project::Server'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Node-OS: trusty
|
# Node-OS: trusty
|
||||||
# Node-OS: xenial
|
# Node-OS: xenial
|
||||||
node /^refstack\d*\.open.*\.org$/ {
|
node /^refstack\d*\.open.*\.org$/ {
|
||||||
|
@ -1,378 +0,0 @@
|
|||||||
# == Class: openstack_project::mirror
|
|
||||||
#
|
|
||||||
class openstack_project::mirror (
|
|
||||||
$vhost_name = $::fqdn,
|
|
||||||
) {
|
|
||||||
|
|
||||||
# Some hosts are mirror01, but we need the host to respond to
|
|
||||||
# "mirror." Re-evaluate this if we end up doing multiple
|
|
||||||
# mirrors/load balancing etc.
|
|
||||||
$alias_name = regsubst($vhost_name, 'mirror\d*\.', 'mirror.')
|
|
||||||
if $alias_name != $vhost_name {
|
|
||||||
$serveraliases = [$alias_name]
|
|
||||||
} else {
|
|
||||||
$serveraliases = undef
|
|
||||||
}
|
|
||||||
|
|
||||||
$mirror_root = '/afs/openstack.org/mirror'
|
|
||||||
$wheel_root = "${mirror_root}/wheel"
|
|
||||||
$ceph_deb_hammer_root = "${mirror_root}/ceph-deb-hammer"
|
|
||||||
$ceph_deb_jewel_root = "${mirror_root}/ceph-deb-jewel"
|
|
||||||
$ceph_deb_luminous_root = "${mirror_root}/ceph-deb-luminous"
|
|
||||||
$ceph_deb_mimic_root = "${mirror_root}/ceph-deb-mimic"
|
|
||||||
$ceph_deb_nautilus_root = "${mirror_root}/ceph-deb-nautilus"
|
|
||||||
$gem_root = "${mirror_root}/gem"
|
|
||||||
|
|
||||||
$www_base = '/var/www'
|
|
||||||
$www_root = "${www_base}/mirror"
|
|
||||||
|
|
||||||
#####################################################
|
|
||||||
# Build Apache Webroot
|
|
||||||
file { "${www_base}":
|
|
||||||
ensure => directory,
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "${www_root}":
|
|
||||||
ensure => directory,
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_base}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to pypi.
|
|
||||||
# NOTE(ianw) : retired 2018-11-22; see
|
|
||||||
# https://review.opendev.org/#/c/618326/
|
|
||||||
file { "${www_root}/pypi":
|
|
||||||
ensure => absent,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to wheel.
|
|
||||||
file { "${www_root}/wheel":
|
|
||||||
ensure => link,
|
|
||||||
target => "${wheel_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to centos
|
|
||||||
file { "${www_root}/centos":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/centos",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to debian
|
|
||||||
file { "${www_root}/debian":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/debian",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to debian-security
|
|
||||||
file { "${www_root}/debian-security":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/debian-security",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to Debian OpenStack Packaging Team reprepro.
|
|
||||||
file { "${www_root}/debian-openstack":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/debian-openstack",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to rdo
|
|
||||||
file { "${www_root}/rdo":
|
|
||||||
ensure => absent,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to epel
|
|
||||||
file { "${www_root}/epel":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/epel",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to yum-puppetlabs
|
|
||||||
file { "${www_root}/yum-puppetlabs":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/yum-puppetlabs",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to fedora
|
|
||||||
file { "${www_root}/fedora":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/fedora",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to openSUSE
|
|
||||||
file { "${www_root}/opensuse":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/opensuse",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to Ubuntu
|
|
||||||
file { "${www_root}/ubuntu":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/ubuntu",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to Ubuntu ports
|
|
||||||
file { "${www_root}/ubuntu-ports":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/ubuntu-ports",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to ceph-deb-hammer.
|
|
||||||
file { "${www_root}/ceph-deb-hammer":
|
|
||||||
ensure => link,
|
|
||||||
target => "${ceph_deb_hammer_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to ceph-deb-jewel.
|
|
||||||
file { "${www_root}/ceph-deb-jewel":
|
|
||||||
ensure => link,
|
|
||||||
target => "${ceph_deb_jewel_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to ceph-deb-luminous.
|
|
||||||
file { "${www_root}/ceph-deb-luminous":
|
|
||||||
ensure => link,
|
|
||||||
target => "${ceph_deb_luminous_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to ceph-deb-mimic.
|
|
||||||
file { "${www_root}/ceph-deb-mimic":
|
|
||||||
ensure => link,
|
|
||||||
target => "${ceph_deb_mimic_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to ceph-deb-nautilus.
|
|
||||||
file { "${www_root}/ceph-deb-nautilus":
|
|
||||||
ensure => link,
|
|
||||||
target => "${ceph_deb_nautilus_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to Ubuntu Cloud Archive.
|
|
||||||
file { "${www_root}/ubuntu-cloud-archive":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/ubuntu-cloud-archive",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to deb-docker.
|
|
||||||
file { "${www_root}/deb-docker":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/deb-docker",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create the symlink to Ubuntu Puppetlabs.
|
|
||||||
file { "${www_root}/apt-puppetlabs":
|
|
||||||
ensure => link,
|
|
||||||
target => "${mirror_root}/apt-puppetlabs",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "${www_root}/gem":
|
|
||||||
ensure => link,
|
|
||||||
target => "${gem_root}",
|
|
||||||
owner => root,
|
|
||||||
group => root,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "${www_root}/robots.txt":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0444',
|
|
||||||
source => 'puppet:///modules/openstack_project/disallow_robots.txt',
|
|
||||||
require => File["${www_root}"],
|
|
||||||
}
|
|
||||||
|
|
||||||
#####################################################
|
|
||||||
# Build VHost
|
|
||||||
include ::httpd
|
|
||||||
|
|
||||||
file { '/opt/apache_cache':
|
|
||||||
ensure => absent,
|
|
||||||
force => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/cache/apache2/proxy':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'www-data',
|
|
||||||
group => 'www-data',
|
|
||||||
mode => '0755',
|
|
||||||
require => Class['httpd']
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['rewrite']) {
|
|
||||||
httpd::mod { 'rewrite':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['substitute']) {
|
|
||||||
httpd::mod { 'substitute':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['cache']) {
|
|
||||||
httpd::mod { 'cache':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['cache_disk']) {
|
|
||||||
httpd::mod { 'cache_disk':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['proxy']) {
|
|
||||||
httpd::mod { 'proxy':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['proxy_http']) {
|
|
||||||
httpd::mod { 'proxy_http':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
::httpd::vhost { $vhost_name:
|
|
||||||
port => 80,
|
|
||||||
priority => '50',
|
|
||||||
docroot => "${www_root}",
|
|
||||||
template => 'openstack_project/mirror.vhost.erb',
|
|
||||||
serveraliases => $serveraliases,
|
|
||||||
require => [
|
|
||||||
File["${www_root}"],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Cache cleanup
|
|
||||||
package { 'apache2-utils':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
cron { 'apache-cache-cleanup':
|
|
||||||
# Clean apache cache once an hour, keep size down to 70GiB.
|
|
||||||
minute => '0',
|
|
||||||
hour => '*',
|
|
||||||
command => 'flock -n /var/run/htcacheclean.lock htcacheclean -n -p /var/cache/apache2/proxy -t -l 70200M > /dev/null',
|
|
||||||
environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
|
|
||||||
require => [
|
|
||||||
File['/var/cache/apache2/proxy'],
|
|
||||||
Package['apache2-utils'],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
class { '::httpd::logrotate':
|
|
||||||
options => [
|
|
||||||
'daily',
|
|
||||||
'missingok',
|
|
||||||
'rotate 7',
|
|
||||||
'compress',
|
|
||||||
'delaycompress',
|
|
||||||
'notifempty',
|
|
||||||
'create 640 root adm',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,525 +0,0 @@
|
|||||||
# ************************************
|
|
||||||
# Managed by Puppet
|
|
||||||
# ************************************
|
|
||||||
|
|
||||||
NameVirtualHost <%= @vhost_name %>:<%= @port %>
|
|
||||||
|
|
||||||
# Dedicated port for proxy caching, as not to affect afs mirrors.
|
|
||||||
Listen 8080
|
|
||||||
NameVirtualHost <%= @vhost_name %>:8080
|
|
||||||
|
|
||||||
Listen 8081
|
|
||||||
NameVirtualHost <%= @vhost_name %>:8081
|
|
||||||
|
|
||||||
Listen 8082
|
|
||||||
NameVirtualHost <%= @vhost_name %>:8082
|
|
||||||
|
|
||||||
Listen 8083
|
|
||||||
NameVirtualHost <%= @vhost_name %>:8083
|
|
||||||
|
|
||||||
LogFormat "%h %l %u %t \"%r\" %>s %b %{cache-status}e \"%{Referer}i\" \"%{User-agent}i\"" combined-cache
|
|
||||||
|
|
||||||
<VirtualHost <%= @vhost_name %>:<%= @port %>>
|
|
||||||
ServerName <%= @srvname %>
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}" -%>
|
|
||||||
<% end %>
|
|
||||||
DocumentRoot <%= @docroot %>
|
|
||||||
<Directory <%= @docroot %>>
|
|
||||||
Options <%= @options %>
|
|
||||||
AllowOverride None
|
|
||||||
Order allow,deny
|
|
||||||
allow from all
|
|
||||||
Satisfy any
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
CacheStoreExpired On
|
|
||||||
# Pip sets Cache-Control: max-age=0 on requests for pypi index pages.
|
|
||||||
# This means we don't use the cache for those requests. This setting
|
|
||||||
# should force the proxy to ignore cache-control on the request side
|
|
||||||
# but we should still cache things based on the cache-control responses
|
|
||||||
# from the backed servers.
|
|
||||||
CacheIgnoreCacheControl On
|
|
||||||
|
|
||||||
# Added Aug 2017 in an attempt to avoid occasional 502 errors (around
|
|
||||||
# 0.05% of requests) of the type:
|
|
||||||
#
|
|
||||||
# End of file found: ... AH01102: error reading status line from remote server ...
|
|
||||||
#
|
|
||||||
# Per [1]:
|
|
||||||
#
|
|
||||||
# This avoids the "proxy: error reading status line from remote
|
|
||||||
# server" error message caused by the race condition that the backend
|
|
||||||
# server closed the pooled connection after the connection check by the
|
|
||||||
# proxy and before data sent by the proxy reached the backend.
|
|
||||||
#
|
|
||||||
# [1] https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html
|
|
||||||
SetEnv proxy-initial-not-pooled 1
|
|
||||||
|
|
||||||
RewriteEngine On
|
|
||||||
# pypi
|
|
||||||
CacheEnable disk "/pypi"
|
|
||||||
ProxyPass "/pypi/" "https://pypi.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/pypi/" "https://pypi.org/
|
|
||||||
|
|
||||||
# files.pythonhosted.org
|
|
||||||
CacheEnable disk "/pypifiles"
|
|
||||||
ProxyPass "/pypifiles/" "https://files.pythonhosted.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/pypifiles/" "https://files.pythonhosted.org/"
|
|
||||||
|
|
||||||
# Rewrite the locations of the actual files
|
|
||||||
<Location /pypi>
|
|
||||||
SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
|
|
||||||
Substitute "s|https://files.pythonhosted.org/|/pypifiles/|ni"
|
|
||||||
</Location>
|
|
||||||
|
|
||||||
# Wheel URL's are:
|
|
||||||
# /wheel/{distro}-{distro-version}/a/a/a-etc.whl
|
|
||||||
# /wheel/{distro}-{distro-version}/a/abcd/abcd-etc.whl
|
|
||||||
# /wheel/{distro}-{distro-version}/a/abcde/abcde-etc.whl
|
|
||||||
RewriteCond %{REQUEST_URI} ^/wheel/([^/]+)/([^/])([^/]*)
|
|
||||||
RewriteCond %{DOCUMENT_ROOT}/wheel/$1/$2/$2$3 -d
|
|
||||||
RewriteRule ^/wheel/([^/]+)/([^/])([^/]*)(/.*)?$ /wheel/$1/$2/$2$3$4 [L]
|
|
||||||
|
|
||||||
# Special cases for openstack.nose_plugin & backports.*
|
|
||||||
RewriteCond %{REQUEST_URI} ^/wheel/
|
|
||||||
RewriteRule ^(.*)/openstack-nose-plugin(.*)$ $1/openstack.nose_plugin$2
|
|
||||||
RewriteCond %{REQUEST_URI} ^/wheel/
|
|
||||||
RewriteRule ^(.*)/backports-(.*)$ $1/backports.$2
|
|
||||||
|
|
||||||
# Try again but replacing -'s with .'s
|
|
||||||
RewriteCond %{REQUEST_URI} ^/wheel/
|
|
||||||
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
|
|
||||||
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-d
|
|
||||||
RewriteRule (.*)-(.*) $1.$2 [N]
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
<VirtualHost <%= @vhost_name %>:8080>
|
|
||||||
ServerName <%= @srvname %>:8080
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}:8080\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}:8080" -%>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
# Disable directory listing by default.
|
|
||||||
<Directory />
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8080_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8080_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
|
|
||||||
# Let upstreams decide on encoded slash handling.
|
|
||||||
# The default is 'Off' which returns 404 for URLs with encoded slashes,
|
|
||||||
# i.e. '%2f' instead of '/'.
|
|
||||||
AllowEncodedSlashes NoDecode
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
CacheStoreExpired On
|
|
||||||
|
|
||||||
# Added Aug 2017 in an attempt to avoid occasional 502 errors (around
|
|
||||||
# 0.05% of requests) of the type:
|
|
||||||
#
|
|
||||||
# End of file found: ... AH01102: error reading status line from remote server ...
|
|
||||||
#
|
|
||||||
# Per [1]:
|
|
||||||
#
|
|
||||||
# This avoids the "proxy: error reading status line from remote
|
|
||||||
# server" error message caused by the race condition that the backend
|
|
||||||
# server closed the pooled connection after the connection check by the
|
|
||||||
# proxy and before data sent by the proxy reached the backend.
|
|
||||||
#
|
|
||||||
# [1] https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html
|
|
||||||
SetEnv proxy-initial-not-pooled 1
|
|
||||||
|
|
||||||
# Per site caching reverse proxy rules
|
|
||||||
# Only cache specific backends, rely on afs cache otherwise.
|
|
||||||
|
|
||||||
# buildlogs.centos.org (302 redirects to buildlogs.cdn.centos.org)
|
|
||||||
CacheEnable disk "/buildlogs.centos"
|
|
||||||
ProxyPass "/buildlogs.centos/" "https://buildlogs.centos.org/" ttl=120 disablereuse=On retry=0
|
|
||||||
ProxyPassReverse "/buildlogs.centos/" "https://buildlogs.centos.org/"
|
|
||||||
|
|
||||||
# buildlogs.cdn.centos.org
|
|
||||||
CacheEnable disk "/buildlogs.cdn.centos"
|
|
||||||
ProxyPass "/buildlogs.cdn.centos/" "https://buildlogs.cdn.centos.org/" ttl=120 disablereuse=On retry=0
|
|
||||||
ProxyPassReverse "/buildlogs.cdn.centos/" "https://buildlogs.cdn.centos.org/"
|
|
||||||
|
|
||||||
# rdo
|
|
||||||
CacheEnable disk "/rdo"
|
|
||||||
ProxyPass "/rdo/" "https://trunk.rdoproject.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/rdo/" "https://trunk.rdoproject.org/"
|
|
||||||
|
|
||||||
# cbs.centos.org
|
|
||||||
CacheEnable disk "/cbs.centos"
|
|
||||||
ProxyPass "/cbs.centos/" "https://cbs.centos.org/repos/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/cbs.centos/" "https://cbs.centos.org/repos/"
|
|
||||||
|
|
||||||
# pypi
|
|
||||||
CacheEnable disk "/pypi"
|
|
||||||
ProxyPass "/pypi/" "https://pypi.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/pypi/" "https://pypi.org/
|
|
||||||
|
|
||||||
# files.pythonhosted.org
|
|
||||||
CacheEnable disk "/pypifiles"
|
|
||||||
ProxyPass "/pypifiles/" "https://files.pythonhosted.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/pypifiles/" "https://files.pythonhosted.org/"
|
|
||||||
|
|
||||||
# Rewrite the locations of the actual files
|
|
||||||
<Location /pypi>
|
|
||||||
SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
|
|
||||||
Substitute "s|https://files.pythonhosted.org/|/pypifiles/|ni"
|
|
||||||
</Location>
|
|
||||||
|
|
||||||
# images.linuxcontainers.org
|
|
||||||
CacheEnable disk "/images.linuxcontainers"
|
|
||||||
ProxyPass "/images.linuxcontainers/" "http://us.images.linuxcontainers.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/images.linuxcontainers/" "http://us.images.linuxcontainers.org/"
|
|
||||||
|
|
||||||
# registry.npmjs.org
|
|
||||||
CacheEnable disk "/registry.npmjs"
|
|
||||||
ProxyPass "/registry.npmjs/" "https://registry.npmjs.org/" ttl=120 keepalive=On retry=0 nocanon
|
|
||||||
ProxyPassReverse "/registry.npmjs/" "https://registry.npmjs.org/"
|
|
||||||
|
|
||||||
# api.rubygems.org
|
|
||||||
CacheEnable disk "/api.rubygems"
|
|
||||||
ProxyPass "/api.rubygems/" "https://api.rubygems.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/api.rubygems/" "https://api.rubygems.org/"
|
|
||||||
|
|
||||||
# rubygems.org
|
|
||||||
CacheEnable disk "/rubygems"
|
|
||||||
ProxyPass "/rubygems/" "https://rubygems.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/rubygems/" "https://rubygems.org/"
|
|
||||||
|
|
||||||
# opendaylight
|
|
||||||
CacheEnable disk "/opendaylight"
|
|
||||||
ProxyPass "/opendaylight/" "https://nexus.opendaylight.org/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/opendaylight/" "https://nexus.opendaylight.org/"
|
|
||||||
|
|
||||||
# elastico
|
|
||||||
CacheEnable disk "/elastic"
|
|
||||||
ProxyPass "/elastic/" "https://packages.elastic.co/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/elastic/" "https://packages.elastic.co/"
|
|
||||||
|
|
||||||
# grafana
|
|
||||||
CacheEnable disk "/grafana"
|
|
||||||
ProxyPass "/grafana" "https://packagecloud.io/grafana/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/grafana/" "https://packagecloud.io/grafana/"
|
|
||||||
|
|
||||||
# OracleLinux
|
|
||||||
CacheEnable disk "/oraclelinux"
|
|
||||||
ProxyPass "/oraclelinux/" "http://yum.oracle.com/repo/OracleLinux/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/oraclelinux/" "http://yum.oracle.com/repo/OracleLinux/"
|
|
||||||
|
|
||||||
# Percona
|
|
||||||
CacheEnable disk "/percona"
|
|
||||||
ProxyPass "/percona/" "https://repo.percona.com/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/percona/" "https://repo.percona.com/"
|
|
||||||
|
|
||||||
# MariaDB
|
|
||||||
CacheEnable disk "/MariaDB"
|
|
||||||
ProxyPass "/MariaDB/" "https://downloads.mariadb.com/MariaDB/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/MariaDB/" "https://downloads.mariadb.com/MariaDB/"
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
CacheEnable disk "/docker"
|
|
||||||
ProxyPass "/docker/" "https://download.docker.com/linux/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/docker/" "https://download.docker.com/linux/"
|
|
||||||
|
|
||||||
# Alpine
|
|
||||||
CacheEnable disk "/alpine"
|
|
||||||
ProxyPass "/alpine/" "http://dl-cdn.alpinelinux.org/alpine/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/alpine/" "http://dl-cdn.alpinelinux.org/alpine/"
|
|
||||||
|
|
||||||
# LXC (copr)
|
|
||||||
CacheEnable disk "/copr-lxc2"
|
|
||||||
ProxyPass "/copr-lxc2/" "https://copr-be.cloud.fedoraproject.org/results/thm/lxc2.0/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/copr-lxc2/" "https://copr-be.cloud.fedoraproject.org/results/thm/lxc2.0/"
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
# Docker registry v1 proxy.
|
|
||||||
<VirtualHost <%= @vhost_name %>:8081>
|
|
||||||
ServerName <%= @srvname %>:8081
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}:8081\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}:8081" -%>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
# Disable directory listing by default.
|
|
||||||
<Directory />
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8081_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8081_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
# Ignore expire headers as the urls use sha256 hashes.
|
|
||||||
CacheIgnoreQueryString On
|
|
||||||
# NOTE(pabelanger): In the case of docker, if neither an expiry date nor
|
|
||||||
# last-modified date are provided default expire to 1 day. This is up from
|
|
||||||
# 1 hour.
|
|
||||||
CacheDefaultExpire 86400
|
|
||||||
CacheStoreExpired On
|
|
||||||
|
|
||||||
# registry-1.docker.io
|
|
||||||
CacheEnable disk "/registry-1.docker"
|
|
||||||
ProxyPass "/registry-1.docker/" "https://registry-1.docker.io/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/registry-1.docker/" "https://registry-1.docker.io/"
|
|
||||||
|
|
||||||
# dseasb33srnrn.cloudfront.net
|
|
||||||
CacheEnable disk "/cloudfront"
|
|
||||||
ProxyPass "/cloudfront/" "https://dseasb33srnrn.cloudfront.net/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/cloudfront/" "https://dseasb33srnrn.cloudfront.net/"
|
|
||||||
|
|
||||||
# production.cloudflare.docker.com
|
|
||||||
CacheEnable disk "/cloudflare"
|
|
||||||
ProxyPass "/cloudflare/" "https://production.cloudflare.docker.com/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/cloudflare/" "https://production.cloudflare.docker.com/"
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
# Docker registry v2 proxy.
|
|
||||||
<VirtualHost <%= @vhost_name %>:8082>
|
|
||||||
ServerName <%= @srvname %>:8082
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}:8082\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}:8082" -%>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
# Disable directory listing by default.
|
|
||||||
<Directory />
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8082_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8082_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
# Ignore expire headers as the urls use sha256 hashes.
|
|
||||||
CacheIgnoreQueryString On
|
|
||||||
# NOTE(pabelanger): In the case of docker, if neither an expiry date nor
|
|
||||||
# last-modified date are provided default expire to 1 day. This is up from
|
|
||||||
# 1 hour.
|
|
||||||
CacheDefaultExpire 86400
|
|
||||||
CacheStoreExpired On
|
|
||||||
|
|
||||||
# dseasb33srnrn.cloudfront.net
|
|
||||||
CacheEnable disk "/cloudfront"
|
|
||||||
ProxyPass "/cloudfront/" "https://dseasb33srnrn.cloudfront.net/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/cloudfront/" "https://dseasb33srnrn.cloudfront.net/"
|
|
||||||
|
|
||||||
# production.cloudflare.docker.com
|
|
||||||
CacheEnable disk "/cloudflare"
|
|
||||||
ProxyPass "/cloudflare/" "https://production.cloudflare.docker.com/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/cloudflare/" "https://production.cloudflare.docker.com/"
|
|
||||||
|
|
||||||
# NOTE(corvus): Ensure this stanza is last since it's the most
|
|
||||||
# greedy match.
|
|
||||||
CacheEnable disk "/"
|
|
||||||
ProxyPass "/" "https://registry-1.docker.io/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/" "https://registry-1.docker.io/"
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
# Redhat registry proxy.
|
|
||||||
<VirtualHost <%= @vhost_name %>:8083>
|
|
||||||
ServerName <%= @srvname %>:8083
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}:8083\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}:8083" -%>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
# Disable directory listing by default.
|
|
||||||
<Directory />
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8083_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8083_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
# Ignore expire headers as the urls use sha256 hashes.
|
|
||||||
CacheIgnoreQueryString On
|
|
||||||
CacheDefaultExpire 86400
|
|
||||||
CacheStoreExpired On
|
|
||||||
|
|
||||||
# e14353.d.akamaiedge.net
|
|
||||||
CacheEnable disk "/e14353.d.akamaiedge"
|
|
||||||
ProxyPass "/e14353.d.akamaiedge/" "https://e14353.d.akamaiedge.net/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/e14353.d.akamaiedge/" "https://e14353.d.akamaiedge.net/"
|
|
||||||
|
|
||||||
# edgekey.net
|
|
||||||
CacheEnable disk "/redhat.com.edgekey"
|
|
||||||
ProxyPass "/redhat.com.edgekey/" "https://registry.access.redhat.com.edgekey.net/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/redhat.com.edgekey/" "https://registry.access.redhat.com.edgekey.net/"
|
|
||||||
|
|
||||||
# registry.access.redhat.com
|
|
||||||
CacheEnable disk "/"
|
|
||||||
ProxyPass "/" "https://registry.access.redhat.com/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/" "https://registry.access.redhat.com/"
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
# Quay registry proxy.
|
|
||||||
<VirtualHost <%= @vhost_name %>:8084>
|
|
||||||
ServerName <%= @srvname %>:8084
|
|
||||||
<% if @serveraliases.is_a? Array -%>
|
|
||||||
<% @serveraliases.each do |name| -%>
|
|
||||||
<%= " ServerAlias #{name}:8084\n" %>
|
|
||||||
<% end %>
|
|
||||||
<% elsif @serveraliases != nil -%>
|
|
||||||
<%= " ServerAlias #{@serveraliases}:8084" -%>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
# Disable directory listing by default.
|
|
||||||
<Directory />
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8084_error.log
|
|
||||||
LogLevel warn
|
|
||||||
CustomLog /var/log/<%= scope.lookupvar("httpd::params::apache_name") %>/<%= @name %>_8084_access.log combined-cache
|
|
||||||
ServerSignature Off
|
|
||||||
|
|
||||||
# Caching reverse proxy for things that don't make sense in AFS
|
|
||||||
#
|
|
||||||
# General cache rules
|
|
||||||
CacheRoot "/var/cache/apache2/proxy"
|
|
||||||
CacheDirLevels 5
|
|
||||||
CacheDirLength 2
|
|
||||||
# SSL support
|
|
||||||
SSLProxyEngine on
|
|
||||||
# Prevent thundering herds.
|
|
||||||
CacheLock on
|
|
||||||
CacheLockPath "/tmp/mod_cache-lock"
|
|
||||||
CacheLockMaxAge 5
|
|
||||||
# 5GiB
|
|
||||||
CacheMaxFileSize 5368709120
|
|
||||||
# Ignore expire headers as the urls use sha256 hashes.
|
|
||||||
CacheIgnoreQueryString On
|
|
||||||
CacheDefaultExpire 86400
|
|
||||||
CacheStoreExpired On
|
|
||||||
|
|
||||||
# iah50.r.cloudfront.net
|
|
||||||
CacheEnable disk "/iah50.r.cloudfront.net"
|
|
||||||
ProxyPass "/iah50.r.cloudfront.net/" "https://iah50.r.cloudfront.net/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/iah50.r.cloudfront.net/" "https://iah50.r.cloudfront.net/"
|
|
||||||
|
|
||||||
# quay.io
|
|
||||||
CacheEnable disk "/"
|
|
||||||
ProxyPass "/" "https://quay.io/" ttl=120 keepalive=On retry=0
|
|
||||||
ProxyPassReverse "/" "https://quay.io/"
|
|
||||||
</VirtualHost>
|
|
@ -1,5 +1,6 @@
|
|||||||
iptables_extra_public_tcp_ports:
|
iptables_extra_public_tcp_ports:
|
||||||
- 80
|
- 80
|
||||||
|
- 443
|
||||||
- 8080
|
- 8080
|
||||||
- 8081
|
- 8081
|
||||||
- 8082
|
- 8082
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
iptables_extra_public_tcp_ports:
|
|
||||||
- 80
|
|
||||||
- 443
|
|
||||||
- 8080
|
|
||||||
- 8081
|
|
||||||
- 8082
|
|
||||||
- 8083
|
|
||||||
- 8084
|
|
@ -33,16 +33,10 @@ results:
|
|||||||
- puppet
|
- puppet
|
||||||
- puppet4
|
- puppet4
|
||||||
|
|
||||||
mirror02.dfw.rax.openstack.org:
|
|
||||||
- afs-client
|
|
||||||
- mirror
|
|
||||||
- puppet
|
|
||||||
- puppet4
|
|
||||||
|
|
||||||
mirror01.regionone.linaro-us.opendev.org:
|
mirror01.regionone.linaro-us.opendev.org:
|
||||||
- afs-client
|
- afs-client
|
||||||
- letsencrypt
|
- letsencrypt
|
||||||
- mirror_opendev
|
- mirror
|
||||||
|
|
||||||
mirror-update01.openstack.org:
|
mirror-update01.openstack.org:
|
||||||
- afsadmin
|
- afsadmin
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
- hosts: "mirror_opendev:!disabled"
|
- hosts: "mirror:!disabled"
|
||||||
name: "Configure per region opendev mirrors"
|
name: "Configure per region opendev mirrors"
|
||||||
roles:
|
roles:
|
||||||
- role: kerberos-client
|
- role: kerberos-client
|
||||||
|
@ -252,7 +252,7 @@
|
|||||||
files:
|
files:
|
||||||
- inventory/
|
- inventory/
|
||||||
- playbooks/service-mirror.yaml
|
- playbooks/service-mirror.yaml
|
||||||
- playbooks/group_vars/mirror_opendev.yaml
|
- playbooks/group_vars/mirror.yaml
|
||||||
- playbooks/roles/kerberos-client/
|
- playbooks/roles/kerberos-client/
|
||||||
- playbooks/roles/openafs-client/
|
- playbooks/roles/openafs-client/
|
||||||
- playbooks/roles/mirror/
|
- playbooks/roles/mirror/
|
||||||
|
@ -350,12 +350,12 @@
|
|||||||
files:
|
files:
|
||||||
- playbooks/install-ansible.yaml
|
- playbooks/install-ansible.yaml
|
||||||
- roles/
|
- roles/
|
||||||
- playbooks/group_vars/mirror_opendev.yaml
|
- playbooks/group_vars/mirror.yaml
|
||||||
- playbooks/roles/mirror/
|
- playbooks/roles/mirror/
|
||||||
- playbooks/roles/letsencrypt
|
- playbooks/roles/letsencrypt
|
||||||
- playbooks/service-letsencrypt.yaml
|
- playbooks/service-letsencrypt.yaml
|
||||||
- playbooks/service-mirror.yaml
|
- playbooks/service-mirror.yaml
|
||||||
- playbooks/zuul/templates/group_vars/mirror_opendev.yaml.j2
|
- playbooks/zuul/templates/group_vars/mirror.yaml.j2
|
||||||
- testinfra/test_mirror.py
|
- testinfra/test_mirror.py
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user