이 저장소는 Google Cloud Platform(GCP)에서 Minecraft Fabric 서버를 손쉽게 구축하기 위한 인프라 코드 모음(IaC)입니다. OpenTofu를 사용해 인스턴스와 스토리지를 만들고, Ansible로 서버를 설정합니다.
- PowerShell을 관리자 권한으로 열어 다음 스크립트를 실행합니다.
Ubuntu 24.04 배포판 설치까지 완료되면 새 터미널에서 이후 과정을 진행합니다.
./bootstrap/windows/install-wsl.ps1
- 저장소를 클론한 뒤 스크립트를 실행합니다.
이 스크립트는 OpenTofu, gcloud, Ansible 등 필수 도구를 설치합니다.
cd ~/minecraft-iac sudo bash ./bootstrap/linux/bootstrap.sh
- 안내에 따라 다음 명령을 수동으로 실행해 gcloud를 초기화합니다.
gcloud init --no-launch-browser gcloud auth application-default login --no-launch-browser
- 서버 접속용 SSH 키를 생성합니다.
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "minecraft-fabric"
- 가상 환경을 활성화한 뒤
infra디렉터리에서 작업합니다.cd ~/minecraft-iac/infra source ../.venv/bin/activate tofu init -upgrade tofu plan -out plan.out tofu apply plan.out ../scripts/update_inventory.sh
update_inventory.sh스크립트는 Terraform 출력에서 인스턴스 IP를 읽어 Ansible 인벤토리를 자동으로 작성합니다. 기본 변수 값은infra/variables.tf에서 확인할 수 있으며 필요에 따라 수정합니다.
- 인스턴스 생성 후
ansible디렉터리에서 플레이북을 실행합니다.상태 확인만 하려면 다음을 실행합니다.cd ~/minecraft-iac/ansible source ../.venv/bin/activate ansible-playbook -i inventory.ini site.yml
인벤토리 파일에는 대상 서버의 IP와 SSH 정보가 들어 있습니다.ansible-playbook -i inventory.ini status.yml
scripts/manage_mods.py는 Modrinth API를 이용해 모드 정보를 조회하고 ansible/vars/mods.yml을 자동으로 갱신합니다.
source .venv/bin/activate
python scripts/manage_mods.py add fabric-api --mc-version 1.21.5
python scripts/manage_mods.py list-modsOpenTofu나 Ansible을 실행하기 전에 필요한 주요 변수는 다음 파일에서 관리합니다. 값을 수정해 원하는 설정으로 조정할 수 있습니다.
infra/variables.tf– 프로젝트 ID, 리전, 인스턴스 유형 등 인프라 전반 설정ansible/vars/versions.yml– 설치에 필요한 모드 로더 및 패키지 버전 지정ansible/vars/server_properties.yml–server_xms,server_xmx와minecraft_server_properties목록 관리ansible/vars/world_sync.yml– 월드 동기화 방식 및 경로 설정
예를 들어 infra/variables.tf에서 instance_type 값을 변경하면 생성되는 VM의 사양이 달라집니다. ansible/vars/server_properties.yml에서 server_xmx 값을 수정하면 서버의 최대 메모리를 조정할 수 있습니다.
- 자세한 과정은 Notion 문서를 참고하실 수 있습니다.