Switch local testing to subdomain model

Requires manual setup through hosts file or dns server for now.
This commit is contained in:
Marty Oehme 2021-12-09 15:34:49 +01:00
parent c5eac2a846
commit b393c0b946
Signed by: Marty
GPG key ID: B7538B8F50A1C800
4 changed files with 30 additions and 10 deletions

View file

@ -3,7 +3,7 @@
## Testing
This repository comes with a test-ready setup to try out the complete site setup locally.
It uses vagrant to accomplish this and create a pretend target host.
It uses vagrant to accomplish this and create a locally available target host.
Install [vagrant](https://www.vagrantup.com/) on your system and to make tests repeatable also install the vagrant plugins `vagrant-hosts` and `vagrant-hostsupdater`,
which will set a static IP for the vagrant host to be reachable under.
@ -11,6 +11,22 @@ which will set a static IP for the vagrant host to be reachable under.
vagrant plugin install vagrant-hosts vagrant-hostsupdater
```
Additionally, since the test setup mirrors the production setup in that it makes use of subdomains for the individual hosted applications,
the server needs to be reachable under a domain name,
not just an IP address.
For now this is most simply accomplished through editing the hosts file, e.g.:
```hosts
192.168.56.2 ansible.test
192.168.56.2 git.ansible.test
192.168.56.2 links.ansible.test
```
This will allow you to reach the main domain under `http(s)://ansible.test` and sets up two subdomains that can be reached.
Be aware that the hosts file does not support subdomain wildcards.
You will have to specify each hostname individually or use a tool such as `dnsmasq`.
Read more [here](https://serverfault.com/questions/118378/in-my-etc-hosts-file-on-linux-osx-how-do-i-do-a-wildcard-subdomain).
Then you are ready to run the complete infrastructure setup locally,
simply by executing `ansible-playbook site.yml`.
You can of course pick and choose what should be executed with host limits, tags, group variables, and so on,

5
Vagrantfile vendored
View file

@ -1,11 +1,14 @@
Vagrant.configure('2') do |config|
config.vm.define 'tau' do |debian|
debian.vm.box = 'bento/ubuntu-20.04'
debian.vm.network :private_network, ip: '192.168.27.2'
debian.vm.network :private_network, ip: '192.168.56.2'
debian.vm.hostname = 'tau'
debian.vm.provider 'virtualbox' do |vb|
vb.memory = '2048'
vb.cpus = 2
end
debian.vm.provision :hosts do |provisioner|
provisioner.add_host '192.168.56.2', ['ansible.test']
end
end
end

View file

@ -5,16 +5,17 @@ docker_swarm_advertise_addr: eth1
caddy_use_debug: yes
caddy_tls_use_staging: yes
blog_use_https: no
caddy_use_https: no
whoami_use_https: no
wallabag_use_https: no
gitea_use_https: no
landingpage_use_https: no
miniflux_use_https: no
searx_use_https: no
traggo_use_https: no
monica_use_https: no
nextcloud_use_https: no
searx_use_https: no
shaarli_use_https: no
landingpage_use_https: no
blog_use_https: no
traggo_use_https: no
wallabag_use_https: no
whoami_use_https: no
#server_domain: mytest.com
server_domain: ansible.test

View file

@ -1,5 +1,5 @@
---
ansible_host: 192.168.27.2
ansible_host: 192.168.56.2
ansible_ssh_user: vagrant
ansible_ssh_private_key_file: "{{ playbook_dir }}/.vagrant/machines/tau/virtualbox/private_key"