일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Python
- 후기
- CentOS
- Clean Code
- IAM
- MIG
- terraform
- devops
- gcp
- cloud armor
- cloud function
- cicd
- Uptime Check
- vm
- direnv
- github
- 우테캠
- pub/sub
- Java
- VAGRANT
- 자격증
- AWS
- Google Cloud Platform
- kubernetes
- cloud
- vpc peering
- docker
- Terraform Cloud
- 보안 규칙
- interconnect
- Today
- Total
목록IaC (14)
EMD Blog
문서 상에는 GCS Backend가 Lock을 지원한다고 되어 있는데 AWS 처럼 별다른 설정 방법이 나와있지는 않음.몇가지 글을 확인해보니 같은 bucket내에 lock파일이 저장되는 방식인 듯 함. 테스트 해봐야겠음. lock을 걸어보니 state 파일과 같은 경로에 .tflock 파일이 생성되는 것을 확인 할 수 있었음.
tfe Provider는 Terraform Cloud를 생성하기 위한 코드이기 때문에 backend 관리에 보통 s3+DynamoDB를 활용한다. 하지만 단순하게 내용 공유 목적으로 코드를 공유 할 경우 state파일을 그냥 전달 하는 경우가 있는데 이 때 state 파일을 인식함에도 불구하고 모든 리소스를 새로 create 하려는 plan을 볼 수 있다. https://stackoverflow.com/questions/67204811/terraform-failed-to-install-provider-doesnt-match-checksums-from-dependency-l https://www.terraform.io/language/files/dependency-lock#dependency-lock-fi..
tfe_variable Resource를 사용해서 Terraform Workspace의 변수를 관리 할 수 있음. 하지만 이 variable Resource의 value로는 String만 지정이 가능함. 만약에 Map, List 등을 지정 할 경우 아래 에러가 발생 tfe_variable Inappropriate value for attribute "value": string required. 관련 이슈는 아래에서 확인 가능하며 해결방법도 나와있음.(jsonencode ) https://github.com/hashicorp/terraform-provider-tfe/issues/188 tfe_variable: list(string) not supported · Issue #188 · hashicorp/te..
Terraform Cloud는 조직 내에서 팀을 관리 할 수가 있는데 이 Team의 경우 유료 기능이기 때문에 무료 버전은 “owners” 팀 만을 관리 할 수 있다. 하지만 tfe_team Resource를 사용해서 owners 팀을 관리하려 하면 아래와 같은 에러가 발생한다. Error creating team owners for organization demo-vntg-organization: missing entitlements to create teams 생성 권한이 없다는 에러로 보이는데, 실제로 plan에 보면 team을 생성하긴 한다. 문제는 이 팀은 이미 존재하고 있는 상태지만 refresh로 state파일에 반영 할 수는 없기 때문에(Terraform으로 생성한 것이 아니므로) 무조건 ..
tfe provider를 사용해서 Organization을 구성 할 때 OAuth Client도 함께 구성 할 수 있다. 아래 Resource 참고 https://registry.terraform.io/providers/hashicorp/tfe/latest/docs/resources/oauth_client 위 리소스를 사용하면 이미 연결된 VCS Provider에 대해서 oauth_client_id 값을 받아 올 수 있다. 문제는 이 리소스의 경우 id를 받아오는 용도로 밖에 사용 할 수 없다는 것인데, 결국에는 Organization을 먼저 생성하고 수동으로 VCS 연결 후 다시 Terraform 코드를 Apply해줘야 한다. 이러면 굳이 저 리소스를 안쓰고 Client ID를 따로 관리하는 게 편해보..
SQL Server 사용시 Instance Type을 custom type으로 설정해야 한다. 아래 문서를 참고해서 custom type을 지정해주면 된다. https://cloud.google.com/sql/docs/mysql/instance-settings db-custom-- vCPU의 경우 1또는 2~96 사이의 짝수여야 한다. 메모리의 경우 256의 배수여야 하며 최소 3,840MB 이다. 만약에 vCPU가 1이고 메모리가 3,840MB라면 custom type은 db-custom-1-3840이 된다.
Vagrant vbguest plugin이 설치되어 있지 않을 경우 Vagrant가 VirtualBox 공유 폴더에 마운트할 수 없다는 에서가 발생할 수 있음. 이 경우는 VBoxGuestAdditions에 대한 심볼릭 링크가 깨진 경우임. # 플러그인 설치 전 (vagrant ssh) lrwxrwxrwx 1 root root 49 Sep 3 00:58 /sbin/mount.vboxsf # 플러그인 설치 $ vagrant plugin install vagrant-vbguest Installing the 'vagrant-vbguest' plugin. This can take a few minutes... Fetching micromachine-3.0.0.gem Fetching vagrant-vbguest-..
Vagrant의 box를 centos7로 설정했을 경우 kernel version으로 인해 yum 사용 시 /mnt mount error가 발생할 수 있음. 왜냐하면 기본적으로 vagrant의 centos7은 repository에서 제거된 이전 버전의 kernel이 포함되어 있기 때문임. 이를 해결하기 위해 vbguest를 다운그레이드 하거나 vagrant-vbguest에서 제공하는 allow_kernel_upgrade option을 사용하면 됨. # 다운그레이드 방식 $ vagrant plugin uninstall vagrant-vbguest $ vagrant plugin install vagrant-vbguest --plugin-version 0.21 # option 사용 방식 $ vi Vagrant..
Vagrant의 공유 폴더 기능을 사용할 때 box로 centos를 지정하면 실시간 동기화가 되지 않는 이슈 발생. 즉, 계속 reload를 통해 파일을 동기화 시켜주어야함. 하지만 Ubuntu에서는 정상적으로 작동함. https://stackoverflow.com/questions/29731003/synced-folder-in-vagrant-is-not-syncing-in-realtime stackoverflow에 같은 issue를 겪고 질문을 남긴 사람이 있음. 레드햇 계열의 리눅스에서는 전부 동작하지 않는 것으로 보임. 현재 Hashicorp에 문의 중 → 그냥 문서안내만 받음 기존에 rsync__auto 옵션이 기본적으로 true로 설정되어 있다고 하는데 기본 값을 사용하든 명시적으로 지정을 해주..
Terraform state에 관해서 꼭 알아야 할 부분들 정리해보았음. Terraform은 현재 구성에 대한 정보를 tfstate 파일에 저장한다. tfstate 파일에는 생성한 리소스와의 바인딩 정보가 저장되어 있기 때문에 인프라를 변경 할 경우 이 tfstate 파일을 참고해 리소스를 생성 할 지, 삭제 할지 등을 판단하게 된다. Terraform의 동작 방식은 아래와 같다. (apply 시) terraform refresh 후 계획 생성(plan) 계획에 맞게 리소스 생성 (apply) terraform refresh terraform refresh는 현재 tfstate의 바인딩 정보와 실제 생성된 리소스를 비교 후 tfstate 파일에 반영하는 작업이다. 중요한 것은 tfstate에 기록된 바인..