diff --git a/inventory/service/host_vars/static01.opendev.org.yaml b/inventory/service/host_vars/static01.opendev.org.yaml
index 086f3a8127..a200108c80 100644
--- a/inventory/service/host_vars/static01.opendev.org.yaml
+++ b/inventory/service/host_vars/static01.opendev.org.yaml
@@ -4,6 +4,8 @@ letsencrypt_certs:
- static01.opendev.org
- files.openstack.org
- static.openstack.org
+ static01-ask-openstack-org:
+ - ask.openstack.org
static01-docs-airshipit-org:
- docs.airshipit.org
static01-ci-openstack-org:
diff --git a/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml b/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml
index 3059e0a68c..6d4a2a8dcc 100644
--- a/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml
+++ b/playbooks/roles/letsencrypt-create-certs/handlers/main.yaml
@@ -39,6 +39,9 @@
- name: letsencrypt updated static01-opendev-org-main
include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
+- name: letsencrypt updated static01-ask-openstack-org
+ include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
+
- name: letsencrypt updated static01-docs-airshipit-org
include_tasks: roles/letsencrypt-create-certs/handlers/restart_apache.yaml
diff --git a/playbooks/roles/static/files/50-ask.openstack.org.conf b/playbooks/roles/static/files/50-ask.openstack.org.conf
new file mode 100644
index 0000000000..dba603e3b3
--- /dev/null
+++ b/playbooks/roles/static/files/50-ask.openstack.org.conf
@@ -0,0 +1,40 @@
+
+ ServerName ask.openstack.org
+ RewriteEngine On
+ RewriteRule ^/(.*) https://ask.openstack.org/$1 [last,redirect=permanent]
+ LogLevel warn
+ ErrorLog /var/log/apache2/ask.openstack.org_error.log
+ CustomLog /var/log/apache2/ask.openstack.org_access.log combined
+ ServerSignature Off
+
+
+
+
+
+ ServerName ask.openstack.org
+
+ DocumentRoot /var/www/ask.openstack.org
+
+ SSLCertificateFile /etc/letsencrypt-certs/ask.openstack.org/ask.openstack.org.cer
+ SSLCertificateKeyFile /etc/letsencrypt-certs/ask.openstack.org/ask.openstack.org.key
+ SSLCertificateChainFile /etc/letsencrypt-certs/ask.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
+
+ Use UserAgentFilter
+
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverrideList Redirect RedirectMatch
+ Require all granted
+
+
+ LogLevel warn
+ ErrorLog /var/log/apache2/ask.openstack.org_error.log
+ CustomLog /var/log/apache2/ask.openstack.org_access.log combined
+ ServerSignature Off
+
+
+
diff --git a/playbooks/roles/static/files/ask.openstack.org/index.html b/playbooks/roles/static/files/ask.openstack.org/index.html
new file mode 100644
index 0000000000..d1caa7b67a
--- /dev/null
+++ b/playbooks/roles/static/files/ask.openstack.org/index.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ ask.openstack.org
+
+
+
+
+
+
+ ask.openstack.org
+
+ The ask.openstack.org site was shutdown in May 2021.
+
+ The following options are available for community-based support.
+
+
+
+
+
+
diff --git a/playbooks/roles/static/tasks/50-ask.openstack.org.yaml b/playbooks/roles/static/tasks/50-ask.openstack.org.yaml
new file mode 100644
index 0000000000..8d1f25cdad
--- /dev/null
+++ b/playbooks/roles/static/tasks/50-ask.openstack.org.yaml
@@ -0,0 +1,15 @@
+- name: Create ask directory
+ file:
+ path: /var/www/ask.openstack.org
+ state: directory
+ owner: www-data
+ group: www-data
+ mode: 0755
+
+- name: Copy ask index.html
+ copy:
+ src: 'ask.openstack.org/index.html'
+ dest: '/var/www/ask.openstack.org/index.html'
+ owner: www-data
+ group: www-data
+ mode: 0644
diff --git a/playbooks/roles/static/tasks/enable_site.yaml b/playbooks/roles/static/tasks/enable_site.yaml
index 273ef93069..ebdd926bf5 100644
--- a/playbooks/roles/static/tasks/enable_site.yaml
+++ b/playbooks/roles/static/tasks/enable_site.yaml
@@ -1,14 +1,20 @@
-- name: Add {{ item }} configuration
+- name: Check for deployment tasks
+ include_tasks: "{{ _dt }}"
+ when: _dt != ""
+ vars:
+ _dt: "{{ lookup('first_found', dict(files=[config+'.yaml']), errors='ignore') }}"
+
+- name: Add {{ config }} configuration
copy:
- src: '{{ item }}.conf'
+ src: '{{ config }}.conf'
dest: /etc/apache2/sites-available/
owner: root
group: root
mode: 0644
-- name: 'Enable {{ item }}'
- command: 'a2ensite {{ item }}'
+- name: 'Enable {{ config }}'
+ command: 'a2ensite {{ config }}'
args:
- creates: '/etc/apache2/sites-enabled/{{ item }}'
+ creates: '/etc/apache2/sites-enabled/{{ config }}'
notify:
- Reload apache2
diff --git a/playbooks/roles/static/tasks/main.yaml b/playbooks/roles/static/tasks/main.yaml
index a3f10c6bc8..5dbde6c35e 100644
--- a/playbooks/roles/static/tasks/main.yaml
+++ b/playbooks/roles/static/tasks/main.yaml
@@ -79,6 +79,7 @@
include_tasks: enable_site.yaml
loop:
- 00-static.opendev.org
+ - 50-ask.openstack.org
- 50-ci.openstack.org
- 50-cinder.openstack.org
- 50-developer.openstack.org
@@ -102,6 +103,8 @@
- 50-tarballs.opendev.org
- 50-tarballs.openstack.org
- 50-zuul-ci.org
+ loop_control:
+ loop_var: config
- name: Enable git sites
include_tasks: enable_git_site.yaml
diff --git a/testinfra/test_static.py b/testinfra/test_static.py
index 67f5f79c74..ddf118f9fa 100644
--- a/testinfra/test_static.py
+++ b/testinfra/test_static.py
@@ -42,6 +42,12 @@ def test_static_opendev_org(host, name):
(name, name))
assert 'Index of /' in cmd.stdout
+def test_ask_openstack_org(host):
+ cmd = host.run('curl --insecure '
+ '--resolve ask.openstack.org:443:127.0.0.1 '
+ 'https://ask.openstack.org/')
+ assert 'ask.openstack.org' in cmd.stdout
+
def test_docs_airshipit_org(host):
cmd = host.run('curl --insecure '
'--resolve docs.airshipit.org:443:127.0.0.1 '