This is a repository of Terraform configuration to stand up our lab infrstructure. To use this repository, you must install Terraform. After that:
# Initialize providers and cache
terraform init
# Verify that the configuration seems valid
terraform plan
# Execute the plan
terraform apply
# Reverse, or destroy what was created
terraform destroy
For our lab environment, this creates clones of Ubuntu Cloud Images on ProxMoxand configures the needed hardware/resources for those VMs. Below is a summary:
# | Name | vCPU | RAM (MB) | Usage |
---|---|---|---|---|
1. | auth.int.hackatorium.com | 12 | 2048 | Keycloak AuthN/AuthZ/SSO |
2. | git.int.hackatorium.com | 12 | 2048 | Gitea Source Control |
3. | build.int.hackatorium.com | 12 | 2048 | Jenkins DevOps |
4. | backup.int.hackatorium.com | 12 | 2048 | rsync Backups |
5. | logging.int.hackatorium.com | 12 | 2048 | Graylog syslogd and log aggregation |
6. | status.int.hackatorium.com | 12 | 2048 | Uptime-Kuma Uptime monitoring and incident/outage status |
7. | cloud.int.hackatorium.com | 12 | 2048 | NextCloud End-user cloud storage |
8. | draw.int.hackatorium.com | 12 | 2048 | Draw.io Self-hosted diagramming |
9. | netboot.int.hackatorium.com | 12 | 2048 | netboot.xyz PXE booting |
10. | pihole.int.hackatorium.com | 12 | 2048 | Pi-Hole DNS and ad-blocking |
11. | docs.int.hackatorium.com | 12 | 2048 | Bookstack Documentation |
12. | soc.int.hackatorium.com | 12 | 2048 | Wazuh for SOC / The Hive for IR |
13. | cti.int.hackatorium.com | 12 | 12288 | OpenCTI |
14. | misp.int.hackatorium.com | 12 | 2048 | MISP |
NOTE: This will use 38,912 GB of RAM if you do not choose "Ballooning" in ProxMox.
There is a VLAN 50 where these machines live, and DNS entries as follows:
Hostname | IP Address |
---|---|
auth.int.hackatorium.com | 192.168.50.2 |
automation.int.hackatorium.com | 192.168.50.11 |
backup.int.hackatorium.com | 192.168.50.5 |
build.int.hackatorium.com | 192.168.50.13 |
cloud.int.hackatorium.com | 192.168.50.21 |
cti.int.hackatorium.com | 192.168.50.32 |
cyberchef.int.hackatorium.com | 192.168.50.23 |
docs.int.hackatorium.com | 192.168.50.6 |
draw.int.hackatorium.com | 192.168.50.24 |
git.int.hackatorium.com | 192.168.50.12 |
kanban.int.hackatorium.com | 192.168.50.25 |
logging.int.hackatorium.com | 192.168.50.4 |
misp.int.hackatorium.com | 192.168.50.33 |
netboot.int.hackatorium.com | 192.168.50.7 |
pihole.int.hackatorium.com | 192.168.50.8 |
soc.int.hackatorium.com | 192.168.50.31 |
speedtest.int.hackatorium.com | 192.168.50.22 |
status.int.hackatorium.com | 192.168.50.3 |
The italics items may be addressed later.
Here are instructions on how to install Terraform on Windows, macOS, and Linux:
- Download the Terraform binary for Windows from the official website: Terraform Downloads
- Extract the downloaded ZIP file to a directory of your choice.
- Add the directory where the Terraform executable is located to your system's PATH environment variable. This step allows you to run Terraform from any command prompt.
- Open a Command Prompt or PowerShell window and verify the installation by running the following command:
terraform --version
- Install Homebrew, a popular package manager for macOS, if you haven't already. You can install Homebrew by running the following command in your terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Once Homebrew is installed, use it to install Terraform by running:
brew install terraform
- Verify the installation by running:
terraform --version
- Download the Terraform binary for Linux from the official website: Terraform Downloads
- Extract the downloaded archive to a directory of your choice.
- Move the Terraform executable to a directory included in your system's PATH environment variable or add the directory where the executable is located to the PATH.
- Open a terminal and verify the installation by running:
terraform --version