Proyecto para desplegar un server de Minecraft en AWS usando tecnologías DevOps y IaC.
El objetivo es hacer el despliegue completamente en la capa gratuita de AWS para tener un servidor de Minecraft 1.17+ con 0 costes.
La dificultad extra que trae esta versión es que requiere Java 16, que no se puede instalar de forma estandar usando los gestores de paquetes (al menos a día de hoy 15/06/2021).
- Instalar Terraform.
- Instalar Ansible:
pip install ansible
. - Crear una cuenta gratuita en AWS (una cuenta nueva tiene acceso al Free Tier durante 12 meses).
- En IAM, crear un usuario con permisos de administrador, tipo acceso a la consola.
- En IAM, crear un usuario con permisos de adecuados (o de administrador si tienes prisa), tipo acceso mediante programación y guardar la clave y la clave secreta.
- En EC2, crear un par de claves ssh y guardar la clave privada.
- Modificar el archivo
$HOME/.aws/configure
y añadir un perfil[minecraft]
con la clave y clave secreta que hemos guardado. - Copiar la clave ssh privada en
$HOME/.ssh/id_rsa
. - Clona este repositorio
git clone https://github.com/afdezfraga/MinecraftAWSFreeTier.git
. - Modifica las variables de Terraform segun necesites en el fichero
terraform/terraform.tfvars
. - Descarga el JDK de Java 16(Linux x64 Compressed Archive) y añadelo a la carpeta
ansible/files
.
Despliega:
- Un grupo de seguridad con reglas para SSH y conexiónes de Minecraft.
- Una instancia EC2 de la capa gratuita con IP pública.
cd terraform
terraform init
terraform apply
Consulta la IP pública asignada a la instancia
terraform status show aws_instance.minecraftServer
Substituye la IP obtenida en el paso anterior en el fichero ansible.inventory
. Ejecuta el aprovisionamiento.
cd ansible
ansible-playbook -i ../ansible.inventory -u ubuntu playbook.yml