add data pool for atlas

add nix flake for development environment
pin TF libvirt provider because of SSH issue
explicitly pass known hosts file to libvirt connection string
This commit is contained in:
Pim Kunis 2023-10-26 16:24:25 +02:00
parent 0f7ca0555d
commit 701be696fe
5 changed files with 92 additions and 3 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

1
.gitignore vendored
View file

@ -34,3 +34,4 @@ override.tf.json
terraform.rc terraform.rc
.terraform.lock.hcl .terraform.lock.hcl
*.tfbackend *.tfbackend
.direnv

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1698266953,
"narHash": "sha256-jf72t7pC8+8h8fUslUYbWTX5rKsRwOzRMX8jJsGqDXA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "75a52265bda7fd25e06e3a67dee3f0354e73243c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

18
flake.nix Normal file
View file

@ -0,0 +1,18 @@
{
description = "A basic flake with a shell";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
bashInteractive
opentofu
jq
];
};
});
}

View file

@ -6,22 +6,24 @@ terraform {
required_providers { required_providers {
libvirt = { libvirt = {
source = "dmacvicar/libvirt" source = "dmacvicar/libvirt"
version = "0.7.1" # https://github.com/dmacvicar/terraform-provider-libvirt/issues/1040
} }
} }
} }
provider "libvirt" { provider "libvirt" {
uri = "qemu+ssh://root@atlas.hyp/system" # https://libvirt.org/uri.html#libssh-and-libssh2-transport
uri = "qemu+ssh://root@atlas.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts"
} }
provider "libvirt" { provider "libvirt" {
alias = "jefke" alias = "jefke"
uri = "qemu+ssh://root@jefke.hyp/system" uri = "qemu+ssh://root@jefke.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts"
} }
provider "libvirt" { provider "libvirt" {
alias = "lewis" alias = "lewis"
uri = "qemu+ssh://root@lewis.hyp/system" uri = "qemu+ssh://root@lewis.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts"
} }
resource "libvirt_pool" "iso" { resource "libvirt_pool" "iso" {
@ -42,6 +44,12 @@ resource "libvirt_pool" "init" {
path = "/kvm/init" path = "/kvm/init"
} }
resource "libvirt_pool" "data" {
name = "data"
type = "dir"
path = "/kvm/data"
}
resource "libvirt_volume" "ubuntu_jammy" { resource "libvirt_volume" "ubuntu_jammy" {
name = "ubuntu-jammy.img" name = "ubuntu-jammy.img"
pool = "iso" pool = "iso"