From e9a1fcbe5c5263cbd0024d087d5259fa58ca1900 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 09:11:49 -0500 Subject: [PATCH 1/7] New Features --- install.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..55c5feb --- /dev/null +++ b/install.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# For logging +set -e + +# Download java 17 +sudo apt update +sudo apt install -y openjdk-17-jre + +# Download Minecraft Server +mkdir minecraft_server +cd minecraft_server +wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/435/downloads/paper-1.20.4-435.jar -O server.jar +echo "eula=true" > eula.txt + +# Run minecraft server +java -Xms2G -Xmx4G -jar server.jar nogui \ No newline at end of file From 2bc25e9c14bcfa292c1273e7c7b02d6adbd907d4 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 10:08:25 -0500 Subject: [PATCH 2/7] New Features --- .github/workflows/terraform.yml | 2 +- config.tf | 4 ++-- locals.tf | 1 + logging.sh | 3 +++ outputs.tf | 5 +++++ sg.tf | 8 +++++++- top.sh | 4 ++++ 7 files changed, 23 insertions(+), 4 deletions(-) create mode 100755 logging.sh create mode 100644 outputs.tf create mode 100755 top.sh diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml index e06686c..7844f90 100644 --- a/.github/workflows/terraform.yml +++ b/.github/workflows/terraform.yml @@ -94,5 +94,5 @@ jobs: # On push to "main", build or change infrastructure according to Terraform configuration files # Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks - name: Terraform Apply - if: github.ref == 'refs/heads/"main"' && github.event_name == 'push' + if: github.ref == 'refs/heads/main' && github.event_name == 'push' run: terraform apply -auto-approve -input=false diff --git a/config.tf b/config.tf index 57a511d..f8d528b 100644 --- a/config.tf +++ b/config.tf @@ -1,6 +1,6 @@ terraform { required_version = "1.7.4" - backend "remote" { + /* backend "remote" { # The name of your Terraform Cloud organization. organization = "Kroz" @@ -8,7 +8,7 @@ terraform { workspaces { name = "minecraft-server-terraform" } - } + } */ } provider "aws" { diff --git a/locals.tf b/locals.tf index a8ad5c4..0927b34 100644 --- a/locals.tf +++ b/locals.tf @@ -1,4 +1,5 @@ locals { # Allowed CIDR for minecraft_server allowed_ips = ["186.155.12.50/32"] + ssh_source_ip = "186.155.12.50/32" } diff --git a/logging.sh b/logging.sh new file mode 100755 index 0000000..d6b2e32 --- /dev/null +++ b/logging.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 tail -f /minecraft_server/logs/latest.log \ No newline at end of file diff --git a/outputs.tf b/outputs.tf new file mode 100644 index 0000000..4714f8f --- /dev/null +++ b/outputs.tf @@ -0,0 +1,5 @@ +output pub_ip { + value = aws_instance.minecraft_server.public_ip + description = "Instance Public IP" + depends_on = [aws_instance.minecraft_server] +} diff --git a/sg.tf b/sg.tf index e7fd7ca..6dad618 100644 --- a/sg.tf +++ b/sg.tf @@ -10,7 +10,7 @@ resource "aws_security_group" "minecraft_server" { resource "aws_vpc_security_group_ingress_rule" "minecraft_server_ssh" { security_group_id = aws_security_group.minecraft_server.id - cidr_ipv4 = "186.155.12.50/32" + cidr_ipv4 = local.ssh_source_ip from_port = 22 ip_protocol = "tcp" to_port = 22 @@ -23,4 +23,10 @@ resource "aws_vpc_security_group_ingress_rule" "minecraft_server_port" { from_port = 25565 ip_protocol = "tcp" to_port = 25565 +} + +resource "aws_vpc_security_group_egress_rule" "minecraft_server" { + security_group_id = aws_security_group.minecraft_server.id + cidr_ipv4 = "0.0.0.0/0" + ip_protocol = -1 } \ No newline at end of file diff --git a/top.sh b/top.sh new file mode 100755 index 0000000..85bef73 --- /dev/null +++ b/top.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +pid=$(ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 pidof java) +ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 ps -p ${pid} -o %cpu,%mem,cmd \ No newline at end of file From e8a6badb56259f1fbc63fd6335054c7150dff479 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 10:10:15 -0500 Subject: [PATCH 3/7] New Features --- locals.tf | 2 +- outputs.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/locals.tf b/locals.tf index 0927b34..9838758 100644 --- a/locals.tf +++ b/locals.tf @@ -1,5 +1,5 @@ locals { # Allowed CIDR for minecraft_server - allowed_ips = ["186.155.12.50/32"] + allowed_ips = ["186.155.12.50/32"] ssh_source_ip = "186.155.12.50/32" } diff --git a/outputs.tf b/outputs.tf index 4714f8f..3911841 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,4 +1,4 @@ -output pub_ip { +output "pub_ip" { value = aws_instance.minecraft_server.public_ip description = "Instance Public IP" depends_on = [aws_instance.minecraft_server] From f95d186ad5f637cc58c43ee3318e3010c903df66 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 10:12:31 -0500 Subject: [PATCH 4/7] New Features --- config.tf | 4 ++-- ec2.tf | 4 ++++ logging.sh | 3 --- top.sh | 4 ---- 4 files changed, 6 insertions(+), 9 deletions(-) delete mode 100755 logging.sh delete mode 100755 top.sh diff --git a/config.tf b/config.tf index f8d528b..57a511d 100644 --- a/config.tf +++ b/config.tf @@ -1,6 +1,6 @@ terraform { required_version = "1.7.4" - /* backend "remote" { + backend "remote" { # The name of your Terraform Cloud organization. organization = "Kroz" @@ -8,7 +8,7 @@ terraform { workspaces { name = "minecraft-server-terraform" } - } */ + } } provider "aws" { diff --git a/ec2.tf b/ec2.tf index 6002bed..2c7b84d 100644 --- a/ec2.tf +++ b/ec2.tf @@ -21,4 +21,8 @@ resource "aws_instance" "minecraft_server" { echo "eula=true" > eula.txt java -Xms2G -Xmx4G -jar server.jar nogui EOF + + tags = { + Name = "minecraft_server" + } } diff --git a/logging.sh b/logging.sh deleted file mode 100755 index d6b2e32..0000000 --- a/logging.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 tail -f /minecraft_server/logs/latest.log \ No newline at end of file diff --git a/top.sh b/top.sh deleted file mode 100755 index 85bef73..0000000 --- a/top.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -pid=$(ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 pidof java) -ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 ps -p ${pid} -o %cpu,%mem,cmd \ No newline at end of file From 8fd9187bab2fca4efa8b721ac84d2494e086e8f1 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 10:12:42 -0500 Subject: [PATCH 5/7] New Features --- monitoring/logging.sh | 3 +++ monitoring/top.sh | 4 ++++ 2 files changed, 7 insertions(+) create mode 100755 monitoring/logging.sh create mode 100755 monitoring/top.sh diff --git a/monitoring/logging.sh b/monitoring/logging.sh new file mode 100755 index 0000000..d6b2e32 --- /dev/null +++ b/monitoring/logging.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 tail -f /minecraft_server/logs/latest.log \ No newline at end of file diff --git a/monitoring/top.sh b/monitoring/top.sh new file mode 100755 index 0000000..85bef73 --- /dev/null +++ b/monitoring/top.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +pid=$(ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 pidof java) +ssh -i '/Users/Oscar_Lopez/Downloads/test.pem' ubuntu@3.87.206.83 ps -p ${pid} -o %cpu,%mem,cmd \ No newline at end of file From f470076d870b81e96ef8f2fdacf30bd6619e19d9 Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 11:11:05 -0500 Subject: [PATCH 6/7] updates --- ec2.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ec2.tf b/ec2.tf index 2c7b84d..cee19ee 100644 --- a/ec2.tf +++ b/ec2.tf @@ -7,9 +7,9 @@ resource "aws_instance" "minecraft_server" { instance_type = "t2.medium" # RAM: 4 | vCPU: 2 key_name = "test" associate_public_ip_address = true - user_data_replace_on_change = true vpc_security_group_ids = [aws_security_group.minecraft_server.id] + user_data_replace_on_change = true user_data = <<-EOF #!/bin/bash set -e From ebeeac092c35ef28a65400914c49765bf34ee92b Mon Sep 17 00:00:00 2001 From: Oscar Lopez Date: Wed, 28 Feb 2024 11:14:05 -0500 Subject: [PATCH 7/7] fmt --- ec2.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ec2.tf b/ec2.tf index cee19ee..402df48 100644 --- a/ec2.tf +++ b/ec2.tf @@ -10,7 +10,7 @@ resource "aws_instance" "minecraft_server" { vpc_security_group_ids = [aws_security_group.minecraft_server.id] user_data_replace_on_change = true - user_data = <<-EOF + user_data = <<-EOF #!/bin/bash set -e sudo apt update