diff --git a/shell.nix b/shell.nix index 20d11e7..dfcb78e 100644 --- a/shell.nix +++ b/shell.nix @@ -1,10 +1,10 @@ { pkgs ? import {} }: pkgs.mkShell { - buildInputs = [ - pkgs.hello + buildInputs = with pkgs; [ + terraform + niv - # keep this line if you use bash - pkgs.bashInteractive + bashInteractive ]; } diff --git a/terraform/.gitignore b/terraform/.gitignore new file mode 100644 index 0000000..3fa8c86 --- /dev/null +++ b/terraform/.gitignore @@ -0,0 +1 @@ +.terraform diff --git a/terraform/aws_image/.gitignore b/terraform/aws_image/.gitignore new file mode 100644 index 0000000..095b8ed --- /dev/null +++ b/terraform/aws_image/.gitignore @@ -0,0 +1,2 @@ +result +.terraform diff --git a/terraform/aws_image/.terraform.lock.hcl b/terraform/aws_image/.terraform.lock.hcl new file mode 100644 index 0000000..67c7458 --- /dev/null +++ b/terraform/aws_image/.terraform.lock.hcl @@ -0,0 +1,38 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.53.0" + hashes = [ + "h1:oRCCzfwGCDNyuhIJ8kCg0N7h4W2WESm37o2GIt0ETpQ=", + "zh:35a77c79170b0cf3fb7eb835f3ce0b715aeeceda0a259e96e49fed5a30cf6646", + "zh:519d5470a932b1ec9a0fe08876c5e0f0f84f8e506b652c051e4ab708be081e89", + "zh:58cfa5b454602d57c47acd15c2ad166a012574742cdbcf950787ce79b6510218", + "zh:5fc3c0162335a730701c0175809250233f45f1021da8fa52c73635e4c08372d8", + "zh:6790f9d6261eb4bd5cdd7cd9125f103befce2ba127f9ba46eef83585b86e1d11", + "zh:76e1776c3bf9568d520f78419ec143c081f653b8df4fb22577a8c4a35d3315f9", + "zh:ca8ed88d0385e45c35223ace59b1bf77d81cd2154d5416e63a3dddaf0def30e6", + "zh:d002562c4a89a9f1f6cd8d854fad3c66839626fc260e5dde5267f6d34dbd97a4", + "zh:da5e47fb769e90a2f16c90fd0ba95d62da3d76eb006823664a5c6e96188731b0", + "zh:dfe7f33ec252ea550e090975a5f10940c27302bebb5559957957937b069646ea", + "zh:fa91574605ddce726e8a4e421297009a9dabe023106e139ac46da49c8285f2fe", + ] +} + +provider "registry.terraform.io/hashicorp/null" { + version = "3.1.0" + hashes = [ + "h1:vpC6bgUQoJ0znqIKVFevOdq+YQw42bRq0u+H3nto8nA=", + "zh:02a1675fd8de126a00460942aaae242e65ca3380b5bb192e8773ef3da9073fd2", + "zh:53e30545ff8926a8e30ad30648991ca8b93b6fa496272cd23b26763c8ee84515", + "zh:5f9200bf708913621d0f6514179d89700e9aa3097c77dac730e8ba6e5901d521", + "zh:9ebf4d9704faba06b3ec7242c773c0fbfe12d62db7d00356d4f55385fc69bfb2", + "zh:a6576c81adc70326e4e1c999c04ad9ca37113a6e925aefab4765e5a5198efa7e", + "zh:a8a42d13346347aff6c63a37cda9b2c6aa5cc384a55b2fe6d6adfa390e609c53", + "zh:c797744d08a5307d50210e0454f91ca4d1c7621c68740441cf4579390452321d", + "zh:cecb6a304046df34c11229f20a80b24b1603960b794d68361a67c5efe58e62b8", + "zh:e1371aa1e502000d9974cfaff5be4cfa02f47b17400005a16f14d2ef30dc2a70", + "zh:fc39cc1fe71234a0b0369d5c5c7f876c71b956d23d7d6f518289737a001ba69b", + "zh:fea4227271ebf7d9e2b61b89ce2328c7262acd9fd190e1fd6d15a591abfa848e", + ] +} diff --git a/terraform/aws_image/main.tf b/terraform/aws_image/main.tf new file mode 100644 index 0000000..dfc38a0 --- /dev/null +++ b/terraform/aws_image/main.tf @@ -0,0 +1,118 @@ +provider "aws" { + region = "us-east-1" +} + +terraform { + backend "s3" { + bucket = "xeserv-tf-state-paranoid" + key = "aws_image" + region = "us-east-1" + } +} + +resource "aws_s3_bucket" "images" { + bucket = "xeserv-ami-images" + acl = "private" + + tags = { + Name = "Xeserv AMI Images" + } +} + +resource "aws_iam_role" "vmimport" { + name = "vmimport" + assume_role_policy = file("./vmie-trust-policy.json") +} + +resource "aws_iam_role_policy" "vmimport_policy" { + name = "vmimport" + role = aws_iam_role.vmimport.id + policy = <