Skip to content

Latest commit

 

History

History
88 lines (64 loc) · 3.26 KB

File metadata and controls

88 lines (64 loc) · 3.26 KB

Terraform OpenStack Kubernetes 인프라 프로비저닝

이 저장소는 OpenStack에 기본 Kubernetes 인프라를 프로비저닝하기 위한 Terraform 설정들을 포함합니다.

프로젝트 구조

.
├── env/                         # 환경별 Terraform 설정 (예: prod)
│   └── prod/                    # 프로덕션 환경
│       ├── main.tf              # 루트 모듈: 다른 모듈(network, security_group, compute)을 조율합니다.
│       ├── output.tf            # 루트 모듈 출력
│       ├── provider.tf          # OpenStack 프로바이더 설정
│       └── variables.tf         # 루트 모듈 변수
├── modules/                     # 재사용 가능한 Terraform 모듈
│   ├── compute/                 # 컴퓨트 인스턴스 (배스천, 컨트롤 플레인, 워커) 및 로드 밸런서 모듈
│   │   ├── lb.tf                # 로드 밸런서 리소스
│   │   ├── main.tf              # 컴퓨트 인스턴스 정의
│   │   ├── output.tf            # 컴퓨트 모듈 출력
│   │   └── variables.tf         # 컴퓨트 모듈 변수
│   ├── network/                 # 네트워크 리소스 (퍼블릭, 프라이빗, LB 네트워크) 모듈
│   │   ├── main.tf              # 네트워크 및 서브넷 정의
│   │   ├── output.tf            # 네트워크 모듈 출력
│   │   └── variables.tf         # 네트워크 모듈 변수
│   └── security_group/          # 보안 그룹 정의 모듈
│       ├── main.tf              # 보안 그룹 규칙
│       └── output.tf            # 보안 그룹 모듈 출력
└── README.md                    # 이 문서

실행 방법

1. 초기화 (Initialization)

프로젝트 루트 디렉토리로 이동하여 Terraform을 초기화합니다.

cd env/prod
terraform init

2. 인프라 적용 (Applying the Configuration)

인프라를 생성하려면 terraform apply를 실행합니다. 민감한 변수(예: root_password, ubuntu_password, OpenStack 인증 정보)는 .tfvars 파일을 통해 제공하는 것을 권장합니다.

변수 파일 (terraform.tfvars) 사용 방법:

  1. env/prod/ 디렉토리에 terraform.tfvars 파일을 생성합니다.

  2. 다음 내용을 복사하여 파일에 붙여넣고, `` 부분을 실제 값으로 변경합니다.

    # 백엔드 인스턴스 비밀번호
    root_password = ""
    ubuntu_password = ""
    
    # OpenStack 인증 정보
    os_auth_url = "http://YOUR_OPENSTACK_IP:5000/v3" # 실제 OpenStack 인증 URL로 변경
    os_tenant_name = ""
    os_user_name = ""
    os_password = ""
    os_region_name = ""

이제 다음 명령어를 실행하여 인프라를 적용할 수 있습니다.

terraform apply --auto-approve

3. 주요 출력 확인

terraform apply 성공 후, 로드 밸런서의 공인 IP 주소와 같은 중요한 정보가 출력됩니다.

terraform output load_balancer_ip

인프라 삭제 (Destroying the Infrastructure)

프로비저닝된 모든 리소스를 제거하려면 terraform destroy를 실행합니다.

cd env/prod
terraform destroy --auto-approve