반응형

Automation 18

[Terraform] Associate 준비(8) - 구성에 대해 생성,읽기,수정

Variable Input Variable 은 Terraform 모듈의 매개변수 역할을 하여 Modul의 자체 소스 코드를 변경하지 않고 Module의 측면을 사용자 정의할 수 있도록 하고 Module을 서로 다른 구성 간에 공유 할 수 있도록 합니다. 다음과 같이사용합니다. variable "region" { type = list(string) default = ["asia-northeast-3"] } variable로 사용할수 없는 단어로는 예약어인 source, version, providers, count, for_each, lifecycle, depends_on, locals 가 있습니다. 또한 sensitive를 사용한다면 민감한 값을 plan이나 apply할때 출력하지 않습니다. variab..

[Terraform] Associate 준비(6) - Terraform Workflow

Terraform Workflow 에는 3단계가 있습니다. 1. wirte - 코드를 작성합니다 2. plan - 적용하기전 변경 사항을 확인합니다. terraform plan 3. apply - 작성한 코드를 프로비저닝 합니다. terraform apply Command: init terraform init Terraform을 실행할 작업 디렉토리를 초기화 하는데 사용됩니다. 실행하기전 실행할 위치에서 가장 처음으로 사용해야할 명령어입니다. Command: validate terraform velidate 이 명령은 구성만 참조하고 원격 상태, 공급자 API 등과 같은 원격 서비스에 액세스하지 않고 디렉터리의 구성 파일을 확인합니다. 유효성 검사는 제공된 변수 또는 기존 상태에 관계없이 구성이 구문적으..

[Terraform] Associate 준비(5) - Module 과 상호작용

Module 찾기 및 사용 모듈을 찾을 땐 Terraform Registry 를 주로 이용합니다. Module을 사용할땐 Terraform Registry : // 개인 Registry : /// module "gcloud" { source = "terraform-google-modules/gcloud/google" version = "3.0.0" } Module Block 모듈은 함께 사용되는 여러 리소스에 대한 컨테이너 입니다. 모든 Terraform 구성에는 기본 작업 디렉토리의 .tf파일에 정의된 리소스로 구성된 루트 모듈로 알려진 모듈이 하나 이상 있습니다. 모듈은 다른 모듈을 호ㅜㄹ할 수 있으며 ,이를 통해 하위 모듈의 리소스를 구성에 간략하게 포함할 수 있습니다. 모듈은 동일한 구성 내에서 ..

[Terraform] Associate 준비(4) - Terraform CLI

Command: fmt 이 명령어는 Terraform 구성 파일을 표준 형식 및 스타일로 다시 작성하는데 사용됩니다. 즉, 중구난방으로 작성하여 실행하게 작성하였을 때 해당 명령어를 사용하면 깔끔하게 정리됩니다. 커맨드라인에 작성하면 됩니다. terraform fmt 기본문법 : terraform fmt [options] [DIR] flag : -list=false : 형식이 불일치가 있는 파일을 나열하지 않습니다. -wirte=false : 입력 파일을 덮어 쓰지 않습니다. -diff : 서식 변경사항 표시 -check : 입력치 포맷되어 있는지 확인합니다. (모든 입력의 형식이 올바른 경우 종료상태는 0이 되고, 그렇지 않은 경우 종료상태는 0이 아닙니다) -recursive : 하위 디렉토리에서도 ..

[Terraform] Associate 준비(3) - Terraform 기초(Provider, Provisioners)

Provider = 공급자 Terraform을 이용해 구성할 공급자(Ex: AWS, Azure, GCP..)를 선언해줘야합니다. Provider구성은 root Module에 속합니다. provider "google" { project = "test-project" region = "asia-northeast-3" } 이런식으로 표현 할 수 있습니다. 하지만, 저렇게만 사용할시 region은 한가지 인데 다중으로 구성을 하고싶을 시 alias를 이용합니다 provider "google" { project = "test-project" region = "asia-northeast-3" } provider "google" { alias = "east2" project = "test-project" region..

[Terraform] Associate 준비(2) - Terraform State 의 목적, Remote State

State는 Terraform이 작동하는데 필요한 요구 사항입니다. Terraform이 State없이 작동할수 있는지 또는 Terraform이 상태를 사용하지 않고 실행할 때마다 리소스를 검사하는 것이 가능한지 종종 묻습니다. 해당 포스팅을 통해 Terraform State가 필요한 이유에 대해 설명하겠습니다. Terraform은 Terraform Config을 Mapping 하기위해 데이터베이스가 필요합니다. AWS와 같은 일부 Provider의 경우 Terraform은 이론적으로 AWS태그와 같은 것을 사용할 수 있습니다. Terraformd의 초기 프로토타입에서는 State File이 없었고 이방법을 사용 했습니다. 하지만 태그를 지원하는 리소스가 아닐땐 사용할 수 없었고 또한 AWS가 아닌 다른 ..

[Terraform] Associate 준비(1) - IaC코드 이해하기

Terraform은 인프라를 안전하고 효율적으로 구축, 변경 및 버전화할 수 있는 코드형 인프라(IaC)도구 입니다. Terraform의 주요특징 1. Infrasrtucture as Code 사람이 읽을 수 있는 선언적 구성파일입니다. 이를통하여 버전관리를 할 수 있고 재사용할 수있는 Blueprint를 생성할 수 있습니다. 2. Execution Plans Terraform은 수행할 작업을 설명하는 Plan을 생성하고 인프라를 변경하기 전에 승인을 요청 합니다. 이를통해 Terraform이 인프라를 Create, Update, Destory 전에 변경사항을 검토할 수 있습니다. 3. Resource Graph 리소스 그래프를 Build하고 종속되지않는 작업을 동시에 다발적으로 진행합니다. 이를 통해 ..

[Terraform] Associate 준비 & 문제풀이 & 개념정리

https://learn.hashicorp.com/tutorials/terraform/associate-review?in=terraform/certification#review-guide 해당 주소를 참고로 준비했습니다. 21. 06 16 기준으로 작성되었습니다. AWS 를 사용중이고 AWS리전에 두개의 단일 EC2 인스턴스를 생성하려고 할때 단일구성으로 둘이상의 지역에서 리소스를 생성할 수 있는 방법 -> 동일한 provider에 alias를 붙여 구성한다. provider "aws" { region = "us-east-1" } provider "aws" { alias = "west" region = "us-west-2" } Version Constraints 는 Terraform Registry 또는..

[Terraform] Terraform 생성,수정,삭제 test

0. 시작하기 전 2021.06.04 - [Cloud/Terraform] - [Terraform] WSL2 + cloud sdk + terraform + VScode 개발환경 구축 구축 제대로 됐는지 확인을 위한 간단한 테스트 https://registry.terraform.io/providers/hashicorp/google/latest/docs 해당 주소에서 GCP에 관한 Terraform 구조를 확인 할 수있습니다. (참고실습 : https://learn.hashicorp.com/tutorials/terraform/google-cloud-platform-build?in=terraform/gcp-get-started ) 1. main.tf 생성 // Terraform Resistry에 등록된 명령어 ..

[Terraform] WSL2 + cloud sdk + terraform + VScode 개발환경 구축

0. 들어가기전 윈도우 환경에서 GCP에 Terraform을 이용하여 배포하기 위해 환경을 구축하는 것이 목표 WSL에 Cloud SDK, terraform을 설치하여 VSCode에 연동 1. Window Terminal Install [시작] - [Microsoft Store] 검색 후 실행 Windows Terminal 설치 2. WSL2 설치 (참고: https://docs.microsoft.com/ko-kr/windows/wsl/install-win10 ) (참고 : https://docs.microsoft.com/ko-kr/windows/wsl/compare-versions , WSL1 WSL2 차이) PowerShell 관리자권한 실행 PowerShell 에서 해당 명령어를 실행하여 ( Lin..

반응형