Ansible configuration for the Netz39 infrastructure
Alexander Dahl
0e0e93d880
prosody runs as unpriviledged user inside of its docker container with this uid/gid: root@676f7272aaa6:/etc/prosody# id prosody uid=101(prosody) gid=102(prosody) groups=102(prosody),101(ssl-cert) The certs dir has 0750 permissions and thus the process can not access it and finds no certs, leading to stream errors for s2s and c2s connections. We can not use group name, because the same group has a different gid on the host. Numerical is fine (even if ansible needs this as a string, `chown` seems to know how to handle this). References: !119 Signed-off-by: Alexander Dahl <alex@netz39.de> |
||
---|---|---|
files | ||
group_vars | ||
host_vars | ||
roles | ||
templates | ||
.editorconfig | ||
.mailmap | ||
.yamllint | ||
ansible.cfg | ||
configure-grafana.yml | ||
group-all.yml | ||
group-docker_host.yml | ||
group-proxmox.yml | ||
host-beaker.yml | ||
host-hobbes.yml | ||
host-holmium.yml | ||
host-krypton.yml | ||
host-oganesson.yml | ||
host-platon.yml | ||
host-pottwal.yml | ||
host-radon.yml | ||
host-tau.yml | ||
host-unicorn.yml | ||
inventory.yml | ||
main.yml | ||
README.md | ||
requirements.yml | ||
setup-ssh.yml |
Ansible configuration for the Netz39 infrastructure
This call lists all hosts defined in the inventory:
ansible all --list-hosts
Setup
ansible-galaxy install -r requirements.yml
Setup SSH Access to hosts
LOGUSER=<loguser>
SSH_KEY=<absolute/path/to/ssh/private/key>
ansible-playbook setup-ssh.yml --ask-vault-pass -e "setup_ssh_logname=$LOGUSER" -e "setup_ssh_key=$SSH_KEY"
Edit vault encrypted vars files
ansible-vault edit group_vars/all/vault
Call with
ansible-playbook --ask-vault-pass main.yml
You need to provide a user with sudo rights and the vault password.
Verify Changes
ansible-lint main.yml
ansible-playbook --ask-vault-pass main.yml --check --diff
HTTPS ingress configuration
HTTPS ingress is controlled by the server holmium and forwarded to the configured servers.
To set up a new HTTPS vhost, the following steps need to be taken:
- Select a domain (for internal services we use sub-domains of
.n39.eu
). - Create an external CNAME from this domain to
dyndns.n39.eu
. - Create an internal DNS entry in the Descartes DNS config. This is usually an alias on an existing server.
- Add the entry to the holmium playbook.
- Set up Dehydrated and vhost on the target host, e.g. using
setup_http_site_proxy
.
Do not forget to execute all playbooks with relevant changes.