master
continuous-integration/drone/push Build is passing
apache2 complained about missing / not matching configuration
FSFE Webserver
Install
Clone this repo:
git clone --recurse-submodules git@git.fsfe.org:fsfe-system-hackers/webserver.git
Usage
Update the inventory submodule to reflect the newest changes to the list of our /generate_inventory and the groups that they are in:
git submodule update --remote inventory
Deploy/update all webservers:
ansible-playbook playbook.yaml
Deploy/update only one webserver:
ansible-playbook -l bunsen.fsfeurope.org playbook.yaml
Tags
There are some ansible tags you can use to only run specific tasks:
apache(all typical changes in apache, but no directory creation or so)certs(all things regarding TLS certificates, certbot etc)php(PHP configuration)
Host Vars
The hosts' variables play an essential role. Some are self-explanatory, some are more complex
Host-wide config:
onion_addressdefines the Onion/Tor address for that host. Currently only applies to fsfe.org.ip_proxydefines whether the whole server – so all primary and alias domains – is behind our ip-proxy. In this case, some extra settings have to be made, and the Apache LogFormat is different. Unfortunately, this cannot be set on a vhost basis.
Each entry under domains is an own vhost and certificate. The parent is the
primary domain, e.g. fsfe.org or freeyourandroid.org.
templatedefines the type of the apache2 vhost config to be used (see under/roles/apache2-site/templates).aliasesare domains that are aliases to the primary domain (ServerAlias).modeis a special declaration to differ fsfe.org and test.fsfe.org, and not used for templates other than "fsfe"targetapplies to "redirection" vhosts, so the URL all requests are pointed to.www_diris for vhosts that are served directly from a directory ("subdirectory" template).acme_challengedefines how TLS certs are gathered. Default is http-01, butdns-01triggers the use of the acne-dns-client role.rewritescan define paths for "subdirectory" templates which redirect to the primary domain.includesdefines special Apache2 config files that should be included.
Important Notes
- All domains/aliases that are served by more than one host/VM MUST have
acme_challenge: "dns-01". Otherwise, gathering a new or renewerd cert will fail sooner or later. This then applies all aliases of the primary domain.
Description
Ansible playbook and roles to deploy the webservers for fsfe.org, its subdomains and other campaign domains
https://fsfe.org
Readme
341 KiB
Languages
Python
57.8%
Jinja
41.2%
Shell
1%