CH02_06. 테라폼 HCL variable & local & output
첫 번째로 variable에 대해 알아보자
지난 모듈 강의에서 사용했던 코드에서 약간 수정해보았다.
variable 지시어를 사용하고 블록 레이블로 "vpc_name"이라는 변수의 이름을 지정했다.
블록의 모든 인자 값들은 optional 하기에 지정하지 않아도 바로 사용 가능하다.
자주 사용하는 인자 값으로는 default, type, description 이 있다.
variable값을 참조할 때는 var.vpc_name처럼 참조할 수 있다.
그리고 terraform apply를 하면 vpc가 잘 생성된다.
또 다른 변수를 주입하는 방법도 알아보자
변수를 적용하는 데는 다음 순서대로 적용이 된다.
1. 환경변수
2. terraform.tfvars 파일
3. terraform.tfvars.json 파일
4. *.auto.tfvars 또는 *.auto.tfvars.json 파일
5. -var 또는.var-file
환경변수에 대해 알아보면
export TF_VAR_으로 시작되는 환경변수를 주입할 수 있다.
환경변수 값을 test로 지정하니 hello에서 test로 변경되었다.
이번에는 terraform.tfvars 파일을 이용해보자
vi terraform.tfvars 명령어로 파일을 생성해보자
파일 안에 fastcampus로 vpc_name을 설정하고 unset TF_VAR_vpc_name 명령어로 환경변수는 unset 해주자
그리고 다시 apply를 해보면 vpc 이름이 fastcampus로 바뀐 걸 볼 수 있다.
만약 다른 이름의 .tfvars 확장자를 가진 파일이 존재한다면
terraform apply -var-file=[사용할 파일이름] 명령어를 입력해야 한다.
우리는 json파일을 이용해 관리하지 않을 것이므로 세 번째 방법은 건너뛰자
*.auto.tfvars 방법 또한 두 번째 방법처럼 파일을 생성해서 코드를 입력하고
terraform apply -var="vpc_name=fascampus" 명령어를 입력하면 된다.
두 번째로 local value에 대해 알아보자
local value는 테라폼이 중간에 사용할 수 있는 지역변수와 비슷하다.
locals 라는 지시어를 이용하고 common_tags에 Project와 Owner를 정의했다.
common_tags는 여러 resource들에 공통적으로 들어가는 태그이다.
그리고 각 코드의 tags 부분에 local.common_tags를 할당했다.
그 후 apply를 해보면 태그들이 추가된 걸 볼 수 있다.
마지막으로 output을 알아보자
output은 결과로 출력되는 값을 정의한다. output 지시어를 사용하고 블록 레이블로는 output의 이름을 설정한다.
인자 값으로는 value를 설정한다.
여기서는 name, id, cidr을 가져오도록 했다.
apply해보면 리소스의 변경사항은 없고 output이 추가된 걸 볼 수 있다.
마찬가지로 아래코드를 통해 public, private subnet group에 대한 정보 또한 output으로 출력할 수 있다.