일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- dsf
- 2023년 목표
- airflow webserver
- Pseudo Lab
- SQL
- 알고리즘
- leetcode
- telegram
- airflow architecture
- 백준 온라인 저지
- data_engineer
- 빅데이터를 지탱하는 기술
- terraform
- BOT
- delete join
- MySQL
- docker image
- Python
- docker container
- datacamp
- Airflow
- 그리디
- Data Engineering
- 데이터 엔지니어
- 프로그래머스
- Dynamic Programming
- 백준온라인저지
- Spark
- hackerrank
- docker
- Today
- Total
목록IaC/Terraform (8)
Lim Seunghyun Space
함수 Terraform 내에 값의 유형을 변경하거나 조합할 수 있는 등 다양한 기능을 지원하는 내장 함수가 존재한다. 내장 함수 외에 사용자가 구현한 사용자 정의 함수를 지원하지 않는다. 함수 종류에는 숫자, 문자열, 컬렉션, 인코딩, 파일 시스템, 날짜/시간, 해시/암호화, IP 네트워크, 유형 변환이 있다. 내장 함수 사용 예시 terraform console > upper("seunghyun.lim") "SEUNGHYUN.LIM" > split(",", "korea,usa,denmark") tolist([ "korea", "usa", "denmark", ]) Reference Terraform docs: https://developer.hashicorp.com/terraform/language/fu..
조건식 형태 삼항 연산자 형태를 갖는다. ? : 조건은 true 혹은 false로 확인되는 모든 표현식을 사용할 수 있다. 일반적으로는 비교, 논리 연산자를 사용해 조건을 정의한다. ? 기호를 기준으로 왼쪽은 조건이며 오른쪽은 조건에 대한 처리 방식이다. 조건이 true인 경우 : 기호 왼쪽에 정의된 내용을 수행하며 조건이 false인 경우 : 기호 오른쪽에 정의된 내용을 수행한다. 조건식 예제 variable "enable_file" { type = bool description = "Test 입니다." } resource "local_file" "foo" { count = var.enable_file ? 1 : 0 content = "foo!" filename = "${path.module}/foo...
반복문 list 형태나 Key-Value 형태의 문자열 집합인 데이터가 있는 경우 동일한 내용에 대해 테라폼 구성 정의를 반복적으로 하지 않고 관리할 수 있다. Count 리소스나 모듈 블록에 count 값이 정수인 인수가 포함된 경우 선언된 정수 값만큼 리소스나 모듈을 생성한다. count에서 생성되는 참조값은 count.iindex이며, 반복하는 경우 0부터 1씩 증가해 인덱스가 부여된다. main.tf resource "local_file" "abc" { count = 5 content = "abc${count.index}" filename = "${path.module}/abc${count.index}.txt" } output "fileid" { value = local_file.abc.*.id ..
Output 주로 테라폼 코드의 프로비저닝 수행 후의 결과 속성 값을 확인하는 용도로 사용된다. 테라폼 모듈간, 워크스페이스 간 데이터 접근 요소로 활용할 수 있다. 출력 값의 용도 루트 모듈에서 사용자가 확인하고자 하는 특정 속성 출력 자식 모듈의 특정 값을 정의하고 루트 모듈에서 결과 참조 서로 다른 루트 모듈의 결과를 원격으로 읽기 위한 접근 요소 Output 선언 output으로 시작되며 블록 안에 정의한다. 출력되는 값은 value이며, 테라폼이 제공하는 조합과 프로그래밍적인 기능들에 의해 원하는 값을 출력할 수 있다. ouptut { value = } output 결과에서 리소스 생성 후 결정되는 속성 값은 프로비저닝이 완료되어야 최종적으로 결과를 확인할 수 있다. 따라서, plan 단계에서는..
Local 코드 내 특정 값 혹은 속성 값을 참조 가능한 local은 외부에서 입력되지 않고, 코드 내에서만 가공되어 동작하는 값 선언된 모듈 내에서만 접근 가능하고, 변수처럼 실행 시에 입력받을 수 없다. Local 선언 locals로 시작된다. locals 안의 인수로는 리소스의 속성, 변수의 값들도 조합해 정의할 수 있다. 동일한 파일 내에서 여러번 선언하는 것이 가능하고 여러 파일에 걸쳐 만드는 것도 가능하다. 다만, locals에 선언한 로컬 변수 이름은 전체 루트 모듈 내에서 유일해야 한다. 정의된 속성 값은 지정된 값의 형태에 따라 다양한 유형으로 정의할 수 있다. variable "prefix" { default = "hello" } locals { name = "terraform" con..
Variable(입력 변수) 인프라를 구성하는데 필요한 속성 값을 정의해 코드의 변경 없이 여러 이프라를 생성하는데 목적이 있다. Plan 수행시 값을 입력한다. 변수 선언 방식 variable로 시작되며, 그 뒤에는 이름이 온다. 이름은 동일 모듈 내 모든 변수 선언에서 고유해야 하며, 다른 코드에서 해당 이름으로 참조한다. variable "이름" { = } 변수 정의 시 사용 불가능한 이름 source, version, provideres, count, for_each, lifecycle, depends_on, locals 메타 인수 목록 default: 변수에 할당되는 기본값 type: 변수에 허용되는 값 유형 description: 입력 변수의 설명 validation: 변수 선언의 제약조건을 ..
Data source 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용한다. Data Source 구성 'data'로 시작되며 이후에 '데이터 소스 유형'을 정의 data "" "" { = } # Data source 예시 data "local_file" "abc" { filename = "${path.module}/test.txt" } 데이터 소스 유형은 '_'(Under score)를 기준으로 앞은 provider name, 뒤는 resouce type을 나타낸다. 위의 예시에서는 provider name: local, resource type: file 데이터 소스 유형 뒤에는 고유한 이름이 오며, 다른 데이터 소스 유형과 중복이 될 수 없다. 데이터 소스 내용..
Terraform 설치하기 (On MacOS) Homebrew를 이용한 설치 ⚠️ 사전에 HomeBrew를 설치가 필요 brew tap hashicorp/tap brew install hashicorp/tap/terraform Binary (From Terraform download) https://developer.hashicorp.com/terraform/downloads 이동 원하는 버전과 환경(AMD or ARM)에 맞게 다운로드 후 설치 1. Path 설정 추가 # Terraofrm 설치 위치 확인 which Terraform # PATH 추가 export PATH=$PATH: 2. 설치 확인 terraform ''' Usage: terraform [global options] [args] Th..