78 lines
1.6 KiB
Markdown
78 lines
1.6 KiB
Markdown
# Load-balanced libreddit deployment
|
|
|
|
Use KVM/QEMU, Docker, libvirt, Terraform, and Ansible to deploy
|
|
loadbalanced [libreddit](https://github.com/libreddit/libreddit/) and
|
|
verify deployment with Testinfra.
|
|
|
|
## Dependencies
|
|
|
|
1. GNU/Linux host machine
|
|
2. KVM
|
|
3. QEMU
|
|
4. Libvirt
|
|
5. Terraform
|
|
6. Python 3
|
|
7. Ansible
|
|
8. Testinfra
|
|
9. Debian 11 Bullseye qcow2 bootable
|
|
|
|
## Usage instructions
|
|
|
|
### 1. Provision resources (VMs) on KVM using Terraform
|
|
|
|
1. Generate and verify deployment plan
|
|
|
|
```bash
|
|
terraform plan -out=libreddit
|
|
```
|
|
|
|
2. Apply deployment plan
|
|
|
|
```bash
|
|
terraform apply "libreddit"
|
|
```
|
|
|
|
### 2. Verify VMs are reachable from host
|
|
|
|
```bash
|
|
make configure.ping
|
|
```
|
|
|
|
### 3. Configure VMs
|
|
|
|
```bash
|
|
make configure
|
|
```
|
|
|
|
### 4. Test deployment
|
|
|
|
```bash
|
|
make test
|
|
```
|
|
|
|
### 5. Take down deployment
|
|
|
|
```bash
|
|
terraform destroy
|
|
```
|
|
|
|
## Functions
|
|
|
|
Utility scripts exist for the following operations:
|
|
|
|
```bash
|
|
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
|
|
```
|