Deploy loadbanaced libreddit with KVM, libvirt, terraform and ansible.
ansible | ||
scripts | ||
templates | ||
tests | ||
.gitignore | ||
cloud_init.cfg | ||
conf.tf | ||
Makefile | ||
network_config.cfg | ||
README.md | ||
requirements.txt |
Load-balanced libreddit deployment
Use KVM/QEMU, Docker, libvirt, Terraform, and Ansible to deploy loadbalanced libreddit and verify deployment with Testinfra.
Dependencies
- GNU/Linux host machine
- KVM
- QEMU
- Libvirt
- Terraform
- Python 3
- Ansible
- Testinfra
- Debian 11 Bullseye qcow2 bootable
Usage instructions
1. Provision resources (VMs) on KVM using Terraform
- Generate and verify deployment plan
terraform plan -out=libreddit
- Apply deployment plan
terraform apply "libreddit"
2. Verify VMs are reachable from host
make configure.ping
3. Configure VMs
make configure
4. Test deployment
make test
5. Take down deployment
terraform destroy
Functions
Utility scripts exist for the following operations:
19:46 atm@lab iac ±|master ✗|→ make help
configure Configure whole deployment
configure.ping Ping all VMs
configure.base Configure all VMs to base production configuration
configure.libreddit Configure libreddit
configure.loadbalance Configure loadbalancer
lint Lint source code
on Boot VMs
shutdown Shutdown VMs
test Run all tests
test.base Test base configuration on all VMs
test.loadbalance Test loadbalancer installation
test.libreddit Test libreddit installation
help Prints help for targets with comments