diff --git a/flake.nix b/flake.nix index 5219d60..81166a9 100644 --- a/flake.nix +++ b/flake.nix @@ -121,6 +121,7 @@ packages = with pkgs; [ (opentofu.withPlugins ( ps: with ps; [ + aws vultr sops ] @@ -161,12 +162,6 @@ ./nixos/profiles/server ]; - "tyo0" = { - imports = [ ./hosts/tyo0 ]; - deployment.targetHost = "tyo0.ny4.dev"; - deployment.tags = [ "proxy" ]; - }; - "pek0" = { imports = [ ./hosts/pek0 ]; deployment.targetHost = "blacksteel"; # thru tailscale @@ -184,9 +179,11 @@ ./hosts/vultr/common { networking.hostName = n; } ] - # TODO: import aws - else if (builtins.elem "amazon" v.tags) then - [ ./hosts/amazon/${n} ] + else if (builtins.elem "aws" v.tags) then + [ + ./hosts/aws/${n} + { networking.hostName = n; } + ] else [ ./hosts/${n} ]; }) data.nodes.value) diff --git a/hosts/tyo0/anti-feature.nix b/hosts/aws/tyo0/anti-feature.nix similarity index 100% rename from hosts/tyo0/anti-feature.nix rename to hosts/aws/tyo0/anti-feature.nix diff --git a/hosts/tyo0/default.nix b/hosts/aws/tyo0/default.nix similarity index 98% rename from hosts/tyo0/default.nix rename to hosts/aws/tyo0/default.nix index 56ef5f1..5dd995f 100644 --- a/hosts/tyo0/default.nix +++ b/hosts/aws/tyo0/default.nix @@ -20,11 +20,10 @@ ./services/vaultwarden.nix ./services/wastebin.nix - ../../nixos/profiles/sing-box-server + ../../../nixos/profiles/sing-box-server ]; boot.loader.grub.device = lib.mkForce "/dev/nvme0n1"; - networking.hostName = "tyo0"; system.stateVersion = "24.05"; swapDevices = lib.singleton { diff --git a/hosts/tyo0/ports.nix b/hosts/aws/tyo0/ports.nix similarity index 100% rename from hosts/tyo0/ports.nix rename to hosts/aws/tyo0/ports.nix diff --git a/hosts/tyo0/secrets.yaml b/hosts/aws/tyo0/secrets.yaml similarity index 100% rename from hosts/tyo0/secrets.yaml rename to hosts/aws/tyo0/secrets.yaml diff --git a/hosts/tyo0/services/forgejo.nix b/hosts/aws/tyo0/services/forgejo.nix similarity index 100% rename from hosts/tyo0/services/forgejo.nix rename to hosts/aws/tyo0/services/forgejo.nix diff --git a/hosts/tyo0/services/keycloak.nix b/hosts/aws/tyo0/services/keycloak.nix similarity index 100% rename from hosts/tyo0/services/keycloak.nix rename to hosts/aws/tyo0/services/keycloak.nix diff --git a/hosts/tyo0/services/miniflux.nix b/hosts/aws/tyo0/services/miniflux.nix similarity index 100% rename from hosts/tyo0/services/miniflux.nix rename to hosts/aws/tyo0/services/miniflux.nix diff --git a/hosts/tyo0/services/murmur.nix b/hosts/aws/tyo0/services/murmur.nix similarity index 100% rename from hosts/tyo0/services/murmur.nix rename to hosts/aws/tyo0/services/murmur.nix diff --git a/hosts/tyo0/services/ntfy.nix b/hosts/aws/tyo0/services/ntfy.nix similarity index 100% rename from hosts/tyo0/services/ntfy.nix rename to hosts/aws/tyo0/services/ntfy.nix diff --git a/hosts/tyo0/services/prometheus.nix b/hosts/aws/tyo0/services/prometheus.nix similarity index 100% rename from hosts/tyo0/services/prometheus.nix rename to hosts/aws/tyo0/services/prometheus.nix diff --git a/hosts/tyo0/services/vaultwarden.nix b/hosts/aws/tyo0/services/vaultwarden.nix similarity index 100% rename from hosts/tyo0/services/vaultwarden.nix rename to hosts/aws/tyo0/services/vaultwarden.nix diff --git a/hosts/tyo0/services/wastebin.nix b/hosts/aws/tyo0/services/wastebin.nix similarity index 100% rename from hosts/tyo0/services/wastebin.nix rename to hosts/aws/tyo0/services/wastebin.nix diff --git a/infra/aws.tf b/infra/aws.tf new file mode 100644 index 0000000..c3cbccb --- /dev/null +++ b/infra/aws.tf @@ -0,0 +1,19 @@ +locals { + aws_nodes = { + tyo0 = { + region = "ap-northeast-1a" + plan = "micro_3_0" + tags = ["aws", "proxy"] + } + } +} + +module "aws" { + source = "./modules/aws" + for_each = local.aws_nodes + hostname = each.key + fqdn = "${each.key}.ny4.dev" + region = each.value.region + plan = each.value.plan + tags = each.value.tags +} diff --git a/infra/data.json b/infra/data.json index d35e569..c0ac961 100644 --- a/infra/data.json +++ b/infra/data.json @@ -23,6 +23,21 @@ "string" ] } + ], + "tyo0": [ + "object", + { + "fqdn": "string", + "ipv4": "string", + "ipv6": [ + "list", + "string" + ], + "tags": [ + "list", + "string" + ] + } ] } ], @@ -40,6 +55,17 @@ "vultr", "proxy" ] + }, + "tyo0": { + "fqdn": "tyo0.ny4.dev", + "ipv4": "18.177.132.61", + "ipv6": [ + "2406:da14:f1f:2f00:e63f:64a0:7505:7534" + ], + "tags": [ + "aws", + "proxy" + ] } } } diff --git a/infra/modules/aws/main.tf b/infra/modules/aws/main.tf new file mode 100644 index 0000000..ba73644 --- /dev/null +++ b/infra/modules/aws/main.tf @@ -0,0 +1,58 @@ +variable "hostname" { + type = string +} + +variable "fqdn" { + type = string +} + +variable "region" { + type = string +} + +variable "plan" { + type = string +} + +variable "tags" { + type = list(string) +} + +terraform { + required_providers { + aws = { + source = "registry.terraform.io/hashicorp/aws" + } + } +} + +resource "aws_lightsail_instance" "server" { + availability_zone = var.region + bundle_id = var.plan + name = var.hostname + tags = zipmap(var.tags, [for _ in var.tags : null]) + + blueprint_id = "debian_12" # nixos-anywhere + ip_address_type = "dualstack" + lifecycle { + ignore_changes = [ + name, + ] + } +} + +output "ipv4" { + value = aws_lightsail_instance.server.public_ip_address +} + +output "ipv6" { + value = aws_lightsail_instance.server.ipv6_addresses +} + +output "fqdn" { + value = var.fqdn +} + +output "tags" { + value = var.tags +} diff --git a/infra/outputs.tf b/infra/outputs.tf index 8777f24..c5c1343 100644 --- a/infra/outputs.tf +++ b/infra/outputs.tf @@ -1,3 +1,3 @@ output "nodes" { - value = module.vultr + value = merge(module.vultr, module.aws) } diff --git a/infra/secrets.tf b/infra/secrets.tf index f2c5fb9..d52a6a9 100644 --- a/infra/secrets.tf +++ b/infra/secrets.tf @@ -9,3 +9,9 @@ locals { provider "vultr" { api_key = local.secrets.vultr.api_key } + +provider "aws" { + region = "ap-northeast-1" + access_key = local.secrets.aws.access_key + secret_key = local.secrets.aws.secret_key +} diff --git a/infra/secrets.yaml b/infra/secrets.yaml index 2112a6c..999b623 100644 --- a/infra/secrets.yaml +++ b/infra/secrets.yaml @@ -1,5 +1,8 @@ vultr: api_key: ENC[AES256_GCM,data:e3ZTVPp/k673qjoHx/ls4HrEv+rYNUsK93DvLbDZwQqZtyrx,iv:jbsJFFV6B+vNXq9AvNWFFnyWoAI+EpZ7olDofFDmd5M=,tag:dCaidJtn1CJka/4lwoVe8g==,type:str] +aws: + access_key: ENC[AES256_GCM,data:5ShrhBmrpNTGmx711NqLhFXwjXI=,iv:QlSlQgAFA3r6uRmauaPqMLB+cVCLxWZ+6AQKIiFP7tk=,tag:6JceiJdk3YpX+WmtM7Yvnw==,type:str] + secret_key: ENC[AES256_GCM,data:dMVwqkGnRkS5iR7zE7dQ6zuVSqCVFBnVI10v6o31K6068I942LyV7A==,iv:g/ZX5xplwRgsSwmy9Wjv6MchEegInAtgQ2aTwyS5p1U=,tag:cvlgeyMKZ+3gv2FrYb7+hA==,type:str] tofu: encryption: ENC[AES256_GCM,data:7+K0SYGOURiEbZ4IrOMJYYVWcSlLqxLv+9lZRUH/cH34qZ7CUt8vsSYP7VyRgCVqFr7sETGj1LPliPjJT2yge9HNbbuUnJ0U3RpLytl7z63nOLeSvUU=,iv:WGrozRmPerQ7iPJAqWmBy9XQ6SnOLrcLLwxdoa1ZIWQ=,tag:rcfNqW57WyVc4U0Iy2MHKA==,type:str] sops: @@ -17,8 +20,8 @@ sops: WmJlc0piL0s1c3dQd25ibFFZUVRjTzAKNh71/iOviUisewtjmAXmJJdq8KfI4S8X pzEyAoajZIjUfqAnCNxVjxett2bKb2liM/mpO1McOpSRnFe8cOXWMg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-09-21T16:15:27Z" - mac: ENC[AES256_GCM,data:VNoPXECkdYjeig1Aq3MdILIpzlZS8pZrkiMyY5ay6nsmM6XdtwPGjE+veAGcw/qJ/1PHq8N8Wx5hmgFo0pdX2RQSvou+iWeWq26h33iAxUQ10YPA3tgUTlA6aFeTvmiu4YBR9inuKZ48NIk52vJ64PJXVIoKCyFi525y704Mc9g=,iv:YKTKifp6o1AzmzVCFT3PCaVpkBKUR+Q0w0m09IoeRp0=,tag:lOvBJmJy41NjcvkIJADh3Q==,type:str] + lastmodified: "2024-09-27T15:04:46Z" + mac: ENC[AES256_GCM,data:5lpOT2/uaAkkRfbta3f9pRZekghJtvKhMx2mJRqoRq99yjot/YRe0t0ZFDUdiq2rtbKiHQWZdjG/7yrxcr61cMAoQeDLM5qW9+ri+HmjkhFn0dQ39VN8FzYL4bSYcZWNtMCZbCddcI1GZ2p0wu3KFzXi2jctb/mNp9SPGyW1vvw=,iv:FnloSZ10mT0F0MP5A5QOYfEvW62Z/ipJM6+w8fLZ50U=,tag:dyRyFiZ2xsZcXYE89Zzu/g==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.0 diff --git a/infra/terraform.tfstate b/infra/terraform.tfstate index 68a37ec..db8b16f 100644 --- a/infra/terraform.tfstate +++ b/infra/terraform.tfstate @@ -1 +1 @@ -{"serial":22,"lineage":"c3bb4ce4-695c-edf3-3636-1ad64a51509c","meta":{"key_provider.pbkdf2.default":"eyJzYWx0IjoiYVFlaDBOeVdxblJTdTZyVWVwRC9uTWFjUmlMSFlYRkVrbFA2cCt1RjFJMD0iLCJpdGVyYXRpb25zIjo2MDAwMDAsImhhc2hfZnVuY3Rpb24iOiJzaGE1MTIiLCJrZXlfbGVuZ3RoIjozMn0="},"encrypted_data":"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","encryption_version":"v0"} \ No newline at end of file +{"serial":26,"lineage":"c3bb4ce4-695c-edf3-3636-1ad64a51509c","meta":{"key_provider.pbkdf2.default":"eyJzYWx0IjoickZrRUYrVVNJckkzcFNsTnZ5UGdaWENpQ3dYcFhDMmRqVzRMSi9GdTlHQT0iLCJpdGVyYXRpb25zIjo2MDAwMDAsImhhc2hfZnVuY3Rpb24iOiJzaGE1MTIiLCJrZXlfbGVuZ3RoIjozMn0="},"encrypted_data":"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","encryption_version":"v0"} \ No newline at end of file diff --git a/infra/version.tf b/infra/version.tf index c55a7cc..35d5031 100644 --- a/infra/version.tf +++ b/infra/version.tf @@ -6,6 +6,9 @@ terraform { sops = { source = "registry.terraform.io/carlpett/sops" } + aws = { + source = "registry.terraform.io/hashicorp/aws" + } } encryption { diff --git a/infra/vultr.tf b/infra/vultr.tf index b3560f6..23568a1 100644 --- a/infra/vultr.tf +++ b/infra/vultr.tf @@ -1,5 +1,5 @@ locals { - nodes = { + vultr_nodes = { sin0 = { region = "sgp" plan = "vhp-1c-1gb-amd" @@ -22,7 +22,7 @@ EOT module "vultr" { source = "./modules/vultr" - for_each = local.nodes + for_each = local.vultr_nodes hostname = each.key fqdn = "${each.key}.ny4.dev" region = each.value.region diff --git a/nixos/profiles/restic/secrets.yaml b/nixos/profiles/restic/secrets.yaml index f818e74..d3d2360 100644 --- a/nixos/profiles/restic/secrets.yaml +++ b/nixos/profiles/restic/secrets.yaml @@ -11,38 +11,29 @@ sops: - recipient: age129yyxyz686qj88ce5v77ahelqqwt6zz94mzzls0ny4hq76psrd9qhc79kq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3bTRYdi84N1VrcXhFZzRQ - ZGVBV3pMUkxxTjZWcTBEVllhZzJCMkhtaGg4CjZYakRGODhLa3Rkb3lDQy9oVjFV - SCtJUGtMcFMybGRIbmhIQUNQQ2I0dGMKLS0tIFAyZURTVFNQZml1d0JGYWZYQS84 - bnkrVUZvY3YwTVpUZHlzcTFvR1pNbkUKcVP66FDXJFN8tsprjwx7E+eSCb/qCe+F - 7HxC1Aele3vdu3GpJinArWblpXBoc66P6+5UHHop/O6c4p3dEjrCRQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrcSs1VzlYdHJMTmJwSFZY + NnZmODhtV3BIMlZnSXUzYm10blRTNHlFazFvCnB3Rzd0OWFSL1RnK2RIQUxNRFJE + TWpKQWphMk9QN0ZSSW5PVjVtUHIwTkUKLS0tIFEzaFFzMDdLZzEyVjZpVngrd3pK + dEh0R09lbll2cUhCSFZVMndOSnZKb3cK2AM+t4OkhxZcu7vCecloCgz3JNm4yP9M + Vws82MoaIvQYAz54zr2GdgwKMea2Tuoj79eCBmno8vPqaSBApZSlXw== -----END AGE ENCRYPTED FILE----- - recipient: age193x79xx8snu82w3t3hax6nruuw57g7pduwnkpvzkzmd7fs5jvfrquqa3sl enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjT2swWFRaZnJyZW5XanNj - VUE1OVNCOGRjRytab0g4MDdXRnVXdHIwSkVVCk1CNXlIVkU5WVRBQlg1cmtIS3dy - MlkvUzkxTGtWOTBMRWs3MmJPV2tGWEEKLS0tIEl4a0N2NUdscnNlWEc2TmNzNGUr - bFNTcHFWU2hlTXBjK0Rha2ZFNTFCcncKyI2b4FGDX3XI0jw9Wj6Skv/VfiFi8Upu - HXCUovZqdWZBCtmNIXQSKjjTYizKAoTFK6YFqA8CKzNcRrq3vBRhcw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1T09lb3VTSElNSlRyWnp6 + YlBSd1BUNkdrNVU2ODhSSitVWjF0V1Fldm1rCmdFODFWanNsS0d1cFdyaGVZc2RB + WVl5czJhMSt1eVl5M2JpaS83WUUrYmsKLS0tIHNRMmhCL29KaDRUK3N4SDJmY2l1 + SGRaVzBMeWRzM0FnaFNEbkY3QnZYS2MKxeMZONqb80Mi/K2X5oaMylyf0JwV7qdE + qMNaAW5Xlh/7u0OR7hGsvZ4Rj25e5FH1FVpE7A0foUvjxKo+CweBrw== -----END AGE ENCRYPTED FILE----- - recipient: age1u7srtfpgf83hesmsvtqdqftl8xrjmmp33mlg0aze6ken866ad55qxmzdqd enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsczZ6QVpRQUtqVDhnYjJF - dlRnT1pvWXdGaW9Ta1NZODJTTXU3aktrZUcwCm01V1RnR0RCcmZXYkRGN2U0M3k4 - WnhJbXl3UkNKcEtjaGkzellsUW84aGMKLS0tIEQweVdZTDFMZHlFT21LbDgva0x5 - NTlFcjArSzhYRzNCMG9EbmR2d1lVaXcKxvQMdsDAVSwStg1cr6sA55bkWIIEdhjj - TObLtnZMdXskrcm7vRU8h8JpacTntSkjtQPYd04pBIItRIunE0DJJA== - -----END AGE ENCRYPTED FILE----- - - recipient: age12un5sgwu73ufgtd3e439fttek5yfem3m9twq9p7wx95kakmz3cyq5gm3et - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwYnQ3OFZCcmVPTXZ3djBJ - NTJvd0pobzh5TzNxN0pneExwcExEQzRSbEVnCjVtTTdRSk85YzVhVDFBWmYrdk0x - RHNmUlREOEppWm1OQnR5eENPeFV2UWMKLS0tIGYxZ0RmTGRLaTBCdTkyMXk2MVUr - VFFJTFRQWnFFV0MxbWpSUGNyUy83dHcKbl2wtGFCvh4m0/aKGQneWSV3cKdU7AbT - 11piv6jq54GNdq6QtbuX4MlbOsDO18jm29WZ2sbbHANnU70jyybIIA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0L21QbERYbXhIUjNsNzkw + d2NEdXR1Yi9uNjRhUWhnWFpzZVlnM3Y2bkJvCnE3cTNNTlRWYjcwVUVsOXk0WVdH + emJkVVhwVEZVWlhubUx1ZTNBaVgwZkEKLS0tIFNQdGZzQmhHdmZoejdOc2ppdUdB + TkRJcDRiWHJZLytRclF2bTZMZVZkeUUKxyZiqQBCpdo+9K7zV+SLVjBeLUa01Ux1 + O60MI3FeblCk0qm6anfn2MPq8VBKjQUt2yVWYEvn0/GEuwMMdvSK9g== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-09-22T05:18:57Z" mac: ENC[AES256_GCM,data:NaA8s3PRyhD9oVQr2DhsjuMVxT97SFwmH7hzRmq9eNXenwAsuJtJLV1MS9O9MW94rQo9aMeA5e//1jodTlkOgznnDoebX1m1cjXD88HMI3+NXu7f509HSlTKMopjst2PpOPGRq3Vt+SPHc9hV363O/rQBXiohCQ1o/YII1PBm1c=,iv:oqIeyit/UeISNrS6M6KZxJnzyk6f07NOa7dPK/VrtyM=,tag:CUEYuuNuvQeFJvat6tOpeQ==,type:str]