diff --git a/setup_key.sh b/setup_key.sh deleted file mode 100644 index 65bd8a1..0000000 --- a/setup_key.sh +++ /dev/null @@ -1 +0,0 @@ -echo -e "\n${extra_key}" >> /home/ubuntu/.ssh/authorized_keys \ No newline at end of file diff --git a/setup_main.sh b/setup_main.sh new file mode 100644 index 0000000..685d7a2 --- /dev/null +++ b/setup_main.sh @@ -0,0 +1,8 @@ +echo -e "\n${extra_key}" >> /home/ubuntu/.ssh/authorized_keys + +echo "export TERM='xterm-256color'" > .profile; + + +curl -sfL https://get.k3s.io | \ + K3S_TOKEN="${k3s_token}" \ + sh - \ No newline at end of file diff --git a/setup_worker.sh b/setup_worker.sh new file mode 100644 index 0000000..07e300a --- /dev/null +++ b/setup_worker.sh @@ -0,0 +1,9 @@ +echo -e "\n${extra_key}" >> /home/ubuntu/.ssh/authorized_keys + +echo "export TERM='xterm-256color'" > .profile; + + +curl -sfL https://get.k3s.io | \ + INSTALL_K3S_EXEC="agent" \ + K3S_TOKEN="${k3s_token}" \ + sh -s - --server "${k3s_url}:6443" \ No newline at end of file diff --git a/terraform.tf b/terraform.tf index 3d612e6..d38fa23 100644 --- a/terraform.tf +++ b/terraform.tf @@ -5,23 +5,40 @@ variable "project_name" { default = "hideyoshi-portifolio" } +variable "project_domain" { + type = string +} + +variable "k3s_token" { + type = string +} + +variable "number_of_workers" { + type = number + default = 2 +} + variable "aws_region" { type = string default = "sa-east-1" } -variable "aws_access_key" { +variable "aws_access" { type = string } -variable "aws_secret_key" { +variable "aws_secret" { type = string } -variable "project_domain" { +variable "godaddy_key" { type = string } +variable "godaddy_secret" { + type = string +} + variable "ssh_public_key_main" { type = string } @@ -30,18 +47,31 @@ variable "ssh_public_key_ci_cd" { type = string } -variable "number_of_workers" { - type = number - default = 2 + +### PROVIDERS + +terraform { + required_providers { + godaddy = { + source = "n3integration/godaddy" + version = "1.9.1" + } + aws = { + source = "hashicorp/aws" + version = "5.17.0" + } + } } - -### PROVIDER - provider "aws" { region = var.aws_region - access_key = var.aws_access_key - secret_key = var.aws_secret_key + access_key = var.aws_access + secret_key = var.aws_secret +} + +provider "godaddy" { + key = var.godaddy_key + secret = var.godaddy_secret } @@ -153,14 +183,15 @@ resource "aws_security_group" "project_pool" { resource "aws_instance" "main" { ami = "ami-0af6e9042ea5a4e3e" - instance_type = "t2.micro" + instance_type = "t3a.medium" vpc_security_group_ids = [ aws_security_group.project_pool.id ] - count = 1 key_name = aws_key_pair.ssh_key_main.key_name - user_data = templatefile("${path.module}/setup_key.sh", { + user_data = templatefile("${path.module}/setup_main.sh", { extra_key = aws_key_pair.ssh_key_ci_cd.public_key + k3s_token = var.k3s_token + k3s_url = var.project_domain }) tags = { @@ -172,12 +203,14 @@ resource "aws_instance" "worker" { ami = "ami-0af6e9042ea5a4e3e" instance_type = "t2.micro" vpc_security_group_ids = [ aws_security_group.project_pool.id ] - count = 1 + count = var.number_of_workers key_name = aws_key_pair.ssh_key_main.key_name - user_data = templatefile("${path.module}/setup_key.sh", { + user_data = templatefile("${path.module}/setup_worker.sh", { extra_key = aws_key_pair.ssh_key_ci_cd.public_key + k3s_token = var.k3s_token + k3s_url = var.project_domain }) tags = { @@ -186,6 +219,29 @@ resource "aws_instance" "worker" { } +# DNS + +resource "godaddy_domain_record" "gd-runningit" { + domain = "hideyoshi.com.br" + + record { + name = "staging " + type = "A" + data = "${aws_instance.main.public_ip}" + ttl = 600 + priority = 0 + } + + record { + name = "api.staging " + type = "A" + data = "${aws_instance.main.public_ip}" + ttl = 600 + priority = 0 + } +} + + ### OUTPUTS output "bucker_domain_name" {