Refactor: Dir structure
This commit is contained in:
		
							
								
								
									
										65
									
								
								tf-stage-0/main.tf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								tf-stage-0/main.tf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | ||||
| provider "hcloud" { | ||||
|   token = var.hcloud_token | ||||
| } | ||||
|  | ||||
| resource "tls_private_key" "root" { | ||||
|   algorithm = "RSA" | ||||
|   rsa_bits  = 4096 | ||||
| } | ||||
|  | ||||
| resource "hcloud_ssh_key" "this" { | ||||
|   name       = var.ssh_key_name | ||||
|   public_key = one(tls_private_key.root[*].public_key_openssh) | ||||
| } | ||||
|  | ||||
| resource "local_sensitive_file" "ssh_private_key" { | ||||
|   filename             = "${var.files_dir}/id_rsa" | ||||
|   file_permission      = "0600" | ||||
|   directory_permission = "0755" | ||||
|   content              = one(tls_private_key.root[*].private_key_pem) | ||||
| } | ||||
|  | ||||
| resource "hcloud_server" "under_test" { | ||||
|   name   = var.hcloud_server_under_test_name | ||||
|   labels = { "os" = "coreos" } | ||||
|  | ||||
|   server_type = var.hcloud_server_under_test_type | ||||
|   datacenter  = var.hcloud_server_datacenter | ||||
|  | ||||
|   # Image is ignored, as we boot into rescue mode, but is a required field | ||||
|   image    = "fedora-36" | ||||
|   rescue   = "linux64" | ||||
|   ssh_keys = concat(hcloud_ssh_key.this[*].name, var.ssh_extra_key_names) | ||||
|  | ||||
|  | ||||
|   connection { | ||||
|     host        = hcloud_server.under_test.ipv4_address | ||||
|     timeout     = "5m" | ||||
|     private_key = file(local_sensitive_file.ssh_private_key.filename) | ||||
|     # Root is the available user in rescue mode | ||||
|     user = "root" | ||||
|   } | ||||
|  | ||||
|   provisioner "local-exec" { | ||||
|     command = "butane --pretty --strict -d . configure.bu > ${var.files_dir}/configure.ign" | ||||
|   } | ||||
|  | ||||
|  | ||||
|   # Copy Ignition config to server | ||||
|   provisioner "file" { | ||||
|     content     = file("${var.files_dir}/configure.ign") | ||||
|     destination = "/root/setup.ign" | ||||
|   } | ||||
|  | ||||
|   # Install Fedora CoreOS in rescue mode | ||||
|   provisioner "remote-exec" { | ||||
|     inline = [ | ||||
|       "set -x", | ||||
|       "set -e", | ||||
|       "wget https://s3.tobiasmanske.de/public/tobias/coreos-installer-hetzner/main/coreos-installer -O /usr/local/bin/coreos-installer", | ||||
|       "chmod 755 /usr/local/bin/coreos-installer", | ||||
|       "coreos-installer install /dev/sda -i /root/setup.ign", | ||||
|       "shutdown -r now" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user