diff --git a/playbooks/host_vars/static01.opendev.org.yaml b/playbooks/host_vars/static01.opendev.org.yaml index a413a53626..8954391fa1 100644 --- a/playbooks/host_vars/static01.opendev.org.yaml +++ b/playbooks/host_vars/static01.opendev.org.yaml @@ -7,4 +7,7 @@ letsencrypt_certs: - governance.openstack.org static01-security-openstack-org: - security.openstack.org - + static01-tarballs-opendev-org: + - tarballs.opendev.org + static01-tarballs-openstack-org: + - tarballs.openstack.org diff --git a/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml b/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml index 0068d11ca0..cac08944f6 100644 --- a/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml +++ b/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml @@ -44,6 +44,12 @@ - name: letsencrypt updated static01-security-openstack-org include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml +- name: letsencrypt updated static01-tarballs-opendev-org + include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml + +- name: letsencrypt updated static01-tarballs-openstack-org + include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml + # review-dev - name: letsencrypt updated review-dev01-opendev-org-main diff --git a/playbooks/roles/static/files/50-tarballs.opendev.org.conf b/playbooks/roles/static/files/50-tarballs.opendev.org.conf new file mode 100755 index 0000000000..6d7996884c --- /dev/null +++ b/playbooks/roles/static/files/50-tarballs.opendev.org.conf @@ -0,0 +1,41 @@ +Define AFS_ROOT /afs/openstack.org/project/tarballs.opendev.org + + + ServerName tarballs.opendev.org + RewriteEngine On + RewriteRule ^/(.*) https://tarballs.opendev.org/$1 [last,redirect=permanent] + LogLevel warn + ErrorLog /var/log/apache2/tarballs.opendev.org_error.log + CustomLog /var/log/apache2/tarballs.opendev.org_access.log combined + ServerSignature Off + + + + + + ServerName tarballs.opendev.org + + DocumentRoot ${AFS_ROOT} + + SSLCertificateFile /etc/letsencrypt-certs/tarballs.opendev.org/tarballs.opendev.org.cer + SSLCertificateKeyFile /etc/letsencrypt-certs/tarballs.opendev.org/tarballs.opendev.org.key + SSLCertificateChainFile /etc/letsencrypt-certs/tarballs.opendev.org/ca.cer + SSLProtocol All -SSLv2 -SSLv3 + # Note: this list should ensure ciphers that provide forward secrecy + SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!AES256:!aNULL:!eNULL:!MD5:!DSS:!PSK:!SRP + SSLHonorCipherOrder on + + + Options Indexes FollowSymLinks MultiViews + AllowOverrideList Redirect RedirectMatch + Satisfy Any + Require all granted + + + LogLevel warn + ErrorLog /var/log/apache2/tarballs.opendev.org_error.log + CustomLog /var/log/apache2/tarballs.opendev.org_access.log combined + ServerSignature Off + + + diff --git a/playbooks/roles/static/files/50-tarballs.openstack.org.conf b/playbooks/roles/static/files/50-tarballs.openstack.org.conf new file mode 100755 index 0000000000..fb33b8122a --- /dev/null +++ b/playbooks/roles/static/files/50-tarballs.openstack.org.conf @@ -0,0 +1,35 @@ + + ServerName tarballs.openstack.org + RewriteEngine On + RewriteRule ^/(.*) https://tarballs.openstack.org/$1 [last,redirect=permanent] + LogLevel warn + ErrorLog /var/log/apache2/tarballs.openstack.org_error.log + CustomLog /var/log/apache2/tarballs.openstack.org_access.log combined + ServerSignature Off + + + + + + ServerName tarballs.openstack.org + + DocumentRoot ${AFS_ROOT} + + SSLCertificateFile /etc/letsencrypt-certs/tarballs.openstack.org/tarballs.openstack.org.cer + SSLCertificateKeyFile /etc/letsencrypt-certs/tarballs.openstack.org/tarballs.openstack.org.key + SSLCertificateChainFile /etc/letsencrypt-certs/tarballs.openstack.org/ca.cer + SSLProtocol All -SSLv2 -SSLv3 + # Note: this list should ensure ciphers that provide forward secrecy + SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!AES256:!aNULL:!eNULL:!MD5:!DSS:!PSK:!SRP + SSLHonorCipherOrder on + + RewriteEngine On + RewriteRule ^/?(.*)$ https://tarballs.opendev.org/openstack/$1 [L] + + LogLevel warn + ErrorLog /var/log/apache2/tarballs.openstack.org_error.log + CustomLog /var/log/apache2/tarballs.openstack.org_access.log combined + ServerSignature Off + + + diff --git a/playbooks/roles/static/tasks/main.yaml b/playbooks/roles/static/tasks/main.yaml index 2d49faf4ac..ba1984ea6e 100644 --- a/playbooks/roles/static/tasks/main.yaml +++ b/playbooks/roles/static/tasks/main.yaml @@ -86,3 +86,35 @@ creates: /etc/apache2/sites-enabled/50-security.openstack.org notify: - Reload apache2 + +# tarballs.opendev.org +- name: Install tarballs.opendev.org + copy: + src: 50-tarballs.opendev.org.conf + dest: /etc/apache2/sites-available/ + owner: root + group: root + mode: 0644 + +- name: Enable tarballs.opendev.org + command: a2ensite 50-tarballs.opendev.org + args: + creates: /etc/apache2/sites-enabled/50-tarballs.opendev.org + notify: + - Reload apache2 + +# tarballs.openstack.org +- name: Install tarballs.openstack.org + copy: + src: 50-tarballs.openstack.org.conf + dest: /etc/apache2/sites-available/ + owner: root + group: root + mode: 0644 + +- name: Enable tarballs.openstack.org + command: a2ensite 50-tarballs.openstack.org + args: + creates: /etc/apache2/sites-enabled/50-tarballs.openstack.org + notify: + - Reload apache2 diff --git a/testinfra/test_static.py b/testinfra/test_static.py index c00d5b2375..c200d4918a 100644 --- a/testinfra/test_static.py +++ b/testinfra/test_static.py @@ -31,3 +31,19 @@ def test_security_openstack_org(host): '--resolve security.openstack.org:443:127.0.0.1 ' 'https://security.openstack.org/') assert 'OpenStack Security Project' in cmd.stdout + +def test_tarballs_openstack_org(host): + cmd = host.run('curl --insecure ' + '--resolve tarballs.openstack.org:443:127.0.0.1 ' + '--resolve tarballs.opendev.org:443:127.0.0.1 ' + 'https://tarballs.openstack.org/nova/') + # The redirect page should send us to tarballs.opendev.org + assert '302 Found' in cmd.stdout + assert 'https://tarballs.opendev.org/openstack/nova/' in cmd.stdout + +def test_tarballs_opendev_org(host): + cmd = host.run('curl --insecure ' + '--resolve tarballs.opendev.org:443:127.0.0.1 ' + 'https://tarballs.opendev.org/openstack/nova/') + # An old file that should be present + assert 'nova-12.0.0.tar.gz' in cmd.stdout