Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rgl/terraform-libvirt-debian-example
example on how to launch a debian vm using terraform-libvirt
https://github.com/rgl/terraform-libvirt-debian-example
debian libvirt terraform
Last synced: 12 days ago
JSON representation
example on how to launch a debian vm using terraform-libvirt
- Host: GitHub
- URL: https://github.com/rgl/terraform-libvirt-debian-example
- Owner: rgl
- Created: 2023-09-10T11:08:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-13T16:38:07.000Z (4 months ago)
- Last Synced: 2024-10-05T18:21:54.148Z (about 1 month ago)
- Topics: debian, libvirt, terraform
- Language: Shell
- Homepage:
- Size: 25.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Usage (Ubuntu 22.04 host)
[![Lint](https://github.com/rgl/terraform-libvirt-debian-example/actions/workflows/lint.yml/badge.svg)](https://github.com/rgl/terraform-libvirt-debian-example/actions/workflows/lint.yml)
Create and install the [base Debian 12 UEFI vagrant box](https://github.com/rgl/debian-vagrant).
Install Terraform:
```bash
wget https://releases.hashicorp.com/terraform/1.9.2/terraform_1.9.2_linux_amd64.zip
unzip terraform_1.9.2_linux_amd64.zip
sudo install terraform /usr/local/bin
rm terraform terraform_*_linux_amd64.zip
```Create the infrastructure:
```bash
export CHECKPOINT_DISABLE=1
export TF_LOG=TRACE
export TF_LOG_PATH="$PWD/terraform.log"
terraform init
terraform plan -out=tfplan
time terraform apply tfplan
```**NB** if you have errors alike `Could not open '/var/lib/libvirt/images/terraform_example_root.img': Permission denied'` you need to reconfigure libvirt by setting `security_driver = "none"` in `/etc/libvirt/qemu.conf` and restart libvirt with `sudo systemctl restart libvirtd`.
Show information about the libvirt/qemu guest:
```bash
virsh dumpxml terraform_example0
virsh qemu-agent-command terraform_example0 '{"execute":"guest-info"}' --pretty
virsh qemu-agent-command terraform_example0 '{"execute":"guest-network-get-interfaces"}' --pretty
./qemu-agent-guest-exec terraform_example0 id
./qemu-agent-guest-exec terraform_example0 uname -a
ssh-keygen -f ~/.ssh/known_hosts -R "$(terraform output --json ips | jq -r '.[0]')"
ssh "vagrant@$(terraform output --json ips | jq -r '.[0]')"
```Destroy the infrastructure:
```bash
time terraform destroy -auto-approve
```List this repository dependencies (and which have newer versions):
```bash
GITHUB_COM_TOKEN='YOUR_GITHUB_PERSONAL_TOKEN' ./renovate.sh
```# Virtual BMC
You can externally control the VM using the following terraform providers:
* [vbmc terraform provider](https://registry.terraform.io/providers/rgl/vbmc)
* exposes an [IPMI](https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface) endpoint.
* you can use it with [ipmitool](https://github.com/ipmitool/ipmitool).
* for more information see the [rgl/terraform-provider-vbmc](https://github.com/rgl/terraform-provider-vbmc) repository.
* [sushy-vbmc terraform provider](https://registry.terraform.io/providers/rgl/sushy-vbmc)
* exposes a [Redfish](https://en.wikipedia.org/wiki/Redfish_(specification)) endpoint.
* you can use it with [redfishtool](https://github.com/DMTF/Redfishtool).
* for more information see the [rgl/terraform-provider-sushy-vbmc](https://github.com/rgl/terraform-provider-sushy-vbmc) repository.