반응형
Terraform과 asdf를 조합하면 여러 버전의 하이브리드 앱 개발 환경을 쉽게 구성하고, 인프라 및 개발 환경을 통합적으로 관리할 수 있다.
1. 인프라 및 개발 환경을 코드로 관리 가능
- Terraform → 클라우드 및 시스템 환경 관리 (AWS, GCP, Kubernetes 등)
- asdf → 언어 및 도구 버전 관리 (Node.js, Dart, Flutter 등)
- 여러 버전의 SDK 및 도구를 유지하면서도 일관된 환경 제공 가능
2. 재현 가능한 개발 환경 구축
.tool-versions
+ Terraform을 사용하면, 여러 버전의 하이브리드 앱 개발 환경을 손쉽게 구성 가능- Terraform의 provisioner 기능을 활용하면 초기 개발 환경 자동화 가능
Homebrew 설치 및 Terraform 설치
macOS에서 Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew로 Terraform 설치
brew install terraform
Terraform 코드 예제
main.tf 설정
provider "installer" {}
resource "installer_brew" "this" {
for_each = toset(var.brew_packages)
name = each.key
}
resource "installer_asdf_plugin" "this" {
for_each = var.asdf_packages
name = each.key
git_url = each.value.git_url
}
resource "installer_asdf" "this" {
depends_on = [installer_asdf_plugin.this]
for_each = merge([
for package, value in var.asdf_packages : {
for version in value.versions : "${package}@${version}" => { name = package, version = version }
}
]...)
name = each.value.name
version = each.value.version
}
provider.tf 설정
terraform {
required_providers {
installer = {
source = "es6kr/installer"
}
}
}
terraform.tfvars 변수 정의
brew_packages = [
"asdf",
"git",
]
asdf_packages = {
dart = {
git_url = "https://github.com/PatOConnor43/asdf-dart.git"
versions = ["2.19.6", "3.4.3"]
}
flutter = {
git_url = "https://github.com/oae/asdf-flutter.git"
versions = ["3.7.12", "3.22.2"]
}
nodejs = {
git_url = "https://github.com/asdf-vm/asdf-nodejs"
versions = ["22.11.0"]
}
}
결론
Terraform과 asdf
를 활용하면 여러 버전의 하이브리드 앱 개발 환경을 코드로 관리할 수 있다.
특히 .tool-versions
파일과 함께 사용하면 팀원 간 일관된 개발 환경을 보장하면서도,
각 프로젝트에 맞는 SDK 및 도구 버전을 쉽게 전환할 수 있다.
반응형
'DevOps' 카테고리의 다른 글
Terraform에서 OCI 인스턴스 생성 시 `400-CannotParseRequest` 오류 해결 (0) | 2025.02.08 |
---|---|
[k8s] 프라이빗 클라우드 구축을 위한 K3s 추천 가이드 (0) | 2025.02.01 |