Switch local testing to subdomain model
Requires manual setup through hosts file or dns server for now.
This commit is contained in:
parent
c5eac2a846
commit
b393c0b946
4 changed files with 30 additions and 10 deletions
18
README.md
18
README.md
|
|
@ -3,7 +3,7 @@
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
This repository comes with a test-ready setup to try out the complete site setup locally.
|
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`,
|
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.
|
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
|
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,
|
Then you are ready to run the complete infrastructure setup locally,
|
||||||
simply by executing `ansible-playbook site.yml`.
|
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,
|
You can of course pick and choose what should be executed with host limits, tags, group variables, and so on,
|
||||||
|
|
|
||||||
5
Vagrantfile
vendored
5
Vagrantfile
vendored
|
|
@ -1,11 +1,14 @@
|
||||||
Vagrant.configure('2') do |config|
|
Vagrant.configure('2') do |config|
|
||||||
config.vm.define 'tau' do |debian|
|
config.vm.define 'tau' do |debian|
|
||||||
debian.vm.box = 'bento/ubuntu-20.04'
|
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.hostname = 'tau'
|
||||||
debian.vm.provider 'virtualbox' do |vb|
|
debian.vm.provider 'virtualbox' do |vb|
|
||||||
vb.memory = '2048'
|
vb.memory = '2048'
|
||||||
vb.cpus = 2
|
vb.cpus = 2
|
||||||
end
|
end
|
||||||
|
debian.vm.provision :hosts do |provisioner|
|
||||||
|
provisioner.add_host '192.168.56.2', ['ansible.test']
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,17 @@ docker_swarm_advertise_addr: eth1
|
||||||
caddy_use_debug: yes
|
caddy_use_debug: yes
|
||||||
caddy_tls_use_staging: yes
|
caddy_tls_use_staging: yes
|
||||||
|
|
||||||
|
blog_use_https: no
|
||||||
caddy_use_https: no
|
caddy_use_https: no
|
||||||
whoami_use_https: no
|
gitea_use_https: no
|
||||||
wallabag_use_https: no
|
landingpage_use_https: no
|
||||||
miniflux_use_https: no
|
miniflux_use_https: no
|
||||||
searx_use_https: no
|
|
||||||
traggo_use_https: no
|
|
||||||
monica_use_https: no
|
monica_use_https: no
|
||||||
nextcloud_use_https: no
|
nextcloud_use_https: no
|
||||||
|
searx_use_https: no
|
||||||
shaarli_use_https: no
|
shaarli_use_https: no
|
||||||
landingpage_use_https: no
|
traggo_use_https: no
|
||||||
blog_use_https: no
|
wallabag_use_https: no
|
||||||
|
whoami_use_https: no
|
||||||
|
|
||||||
#server_domain: mytest.com
|
server_domain: ansible.test
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
ansible_host: 192.168.27.2
|
ansible_host: 192.168.56.2
|
||||||
ansible_ssh_user: vagrant
|
ansible_ssh_user: vagrant
|
||||||
ansible_ssh_private_key_file: "{{ playbook_dir }}/.vagrant/machines/tau/virtualbox/private_key"
|
ansible_ssh_private_key_file: "{{ playbook_dir }}/.vagrant/machines/tau/virtualbox/private_key"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue