ptgbot: setup web interface

The dependent change exports the ptgbot website on port 8000 in the
container.  Proxy this through apache.

Depends-On: https://review.opendev.org/c/openstack/ptgbot/+/812417
Change-Id: Idf9e9f5ffad981427d24a3476c0c1f244721d917
This commit is contained in:
Ian Wienand 2021-10-05 13:12:34 +11:00
parent 62e30e52de
commit 86b7f75b25
5 changed files with 82 additions and 1 deletions

View File

@ -0,0 +1,4 @@
- name: ptgbot Reload apache2
service:
name: apache2
state: reloaded

View File

@ -50,3 +50,31 @@
- name: Run docker prune to cleanup unneeded images - name: Run docker prune to cleanup unneeded images
shell: shell:
cmd: docker image prune -f cmd: docker image prune -f
- name: Install apache2
apt:
name:
- apache2
- apache2-utils
state: present
- name: Apache modules
apache2_module:
state: present
name: "{{ item }}"
loop:
- rewrite
- proxy
- proxy_http
- ssl
- headers
- proxy_wstunnel
- name: Copy apache config
template:
src: ptgbot.vhost.config.j2
dest: '/etc/apache2/sites-enabled/010-ptgbot.conf'
owner: root
group: root
mode: 0644
notify: ptgbot Reload apache2

View File

@ -0,0 +1,43 @@
<VirtualHost *:80>
ServerName {{ inventory_hostname }}
ServerAdmin infra-root@openstack.org
ErrorLog ${APACHE_LOG_DIR}/ptgbot-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ptgbot-access.log combined
Redirect / https://ptgbot.opendev.org/
</VirtualHost>
<VirtualHost *:443>
ServerName ptgbot.opendev.org
ServerAdmin webmaster@openstack.org
RewriteCond %{HTTP_HOST} !^ptgbot\.opendev\.org [nocase]
RewriteRule ^/(.*) https://ptgbot.opendev.org/$1 [last,redirect=permanent]
AllowEncodedSlashes On
ErrorLog ${APACHE_LOG_DIR}/ptgbot-ssl-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ptgbot-ssl-access.log combined
SSLEngine on
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
SSLCertificateFile /etc/letsencrypt-certs/ptgbot.opendev.org/ptgbot.opendev.org.cer
SSLCertificateKeyFile /etc/letsencrypt-certs/ptgbot.opendev.org/ptgbot.opendev.org.key
SSLCertificateChainFile /etc/letsencrypt-certs/ptgbot.opendev.org/ca.cer
ProxyPass / http://localhost:8000/ retry=0
ProxyPassReverse / http://localhost:8000/
</VirtualHost>

View File

@ -7,8 +7,8 @@
- sync-project-config - sync-project-config
- accessbot - accessbot
- gerritbot - gerritbot
- ptgbot
- statusbot - statusbot
- limnoria - limnoria
- matrix-eavesdrop - matrix-eavesdrop
- matrix-gerritbot - matrix-gerritbot
- ptgbot

View File

@ -45,3 +45,9 @@ def test_statusbot_running(host):
cmd = host.run("docker ps -a") cmd = host.run("docker ps -a")
assert 'statusbot-docker_statusbot_1' in cmd.stdout assert 'statusbot-docker_statusbot_1' in cmd.stdout
assert 'Up ' in cmd.stdout assert 'Up ' in cmd.stdout
def test_ptgbot(host):
cmd = host.run('curl --insecure '
'--resolve ptgbot.opendev.org:443:127.0.0.1 '
'https://ptgbot.opendev.org/')
assert 'Project Teams Gathering' in cmd.stdout