목록DevOps (91)
우노
들어가기 앞서, 해당 포스트에선, Terraform 자원을 제거하는 방법에 대해서 다뤄보겠습니다. 1. 실제 리소스와 Terraform 리소스 코드를 모두 제거하고 싶을 경우 Terraform 리소스 코드를 제거한 뒤, terraform apply 명령어로 변경 사항을 적용합니다. 2. 실제 리소스는 남기고, Terraform 리소스 코드만 제거하고 싶을 경우 Terraform 리소스 코드를 제거하고, terraform plan 명령어로 Terraform 리소스 코드와 실제 리소스의 차이를 로그로 확인한 뒤, terraform state rm [리소스] 를 통해 state 파일로 관리되고 있던 리소스 정보를 삭제합니다. terraform state rm 'module.foo.packet_devic..
특정 branch clone git clone -b
들어가기 앞서, 해당 포스트에선, Docker에서 매개 변수 및 환경 변수를 다루는 방법에 대해서 다뤄보겠습니다. 이미지 빌드 시 Dockerfile 내부로 매개 변수 전달 Dockerfile # FROM절 이전에 선언한 매개변수는 FROM절 이전에만 사용할 수 있습니다. ARG imageversion FROM python:${imageversion} # FROM절 이후에 선언한 매개변수는 FROM절 이후에만 사용할 수 있습니다. ARG foldername RUN mkdir ${foldername} 입력 받을 매개변수를 ARG를 사용해 미리 선언해야합니다. 이미지 빌드 docker build -t . --build-arg imageversion="3.9.15" --build-arg foldername="..
들어가기 앞서, 예를 들어, Provider로 GCP를 사용할 경우, 프로젝트 종류 또는 리전 영역 등에 따라, 동일한 종류의 Provider를 다중으로 선언해야하는 경우가 있습니다. 따라서, 해당 포스트에선 다중 Provider 적용 방법에 대해서 다뤄보겠습니다. 다중 Provider 적용 방법 추가로 사용하는 provider에 alias를 지정하면 됩니다. provider "google" { project = ... region = ... zone = ... credentials = ... } provider "google" { alias = "second" project = ... region = ... zone = ... credentials = ... } 참고 https://blog.outsid..
들어가기 앞서, 원격지 repo에 commit & push를 잘못 했을 경우, 이를 다시 되돌리기 위한 방법을 정리합니다. 1. 현재까지의 commit 기록 조회 git log 2. commit 삭제 가장 최근의 커밋 기록을 제거 git reset HEAD^ 특정 개수만큼의 커밋 기록을 제거 # 가장 최근의 커밋 기록을 1개 제거 (위와 동일) git reset --hard HEAD~1 # 가장 최근의 커밋 기록을 2개 제거 git reset --hard HEAD~2 특정 커밋으로 복구 (특정 커밋 이후를 모두 제거) git reset --hard 3. 원격지 commit 갱신 git push -f origin 변경된 내용을 원격 브랜치에 적용할 때는, 충돌이 발생할 수 있으니 -f 를 사용하여 강제로 ..
Terraform이란? 테라폼(Terraform)은 코드로 인프라를 관리하는 IaC(Infrastructure as Code)도구입니다. IaC는 작성용이성, 재사용성, 유지보수 등의 장점을 가집니다. 하시코프(HashiCorp)가 제공하는 프로젝트 중 하나이며, AWS, Azure, GCP 같은 다양한 서비스들을 지원합니다. 하시코프는 인프라스트럭처와 관련된 다양한 오픈소스 프로젝트를 운영하는 회사입니다. 대표적으로, 개발 환경을 관리하는 Vagrant, 서비스 디스커버리 도구 Consul, 비밀 정보 관리 도구 Vault와 같은 프로젝트들이 있습니다. 테라폼은 HCL이라는 언어로 .tf 파일에 인프라스트럭쳐를 선언적으로 작성합니다. 주요 구성 요소 provider resource state local..
Terraform 및 Terraform Cloud 설정 Terraform 설치 Install | Terraform | HashiCorp Developer brew tap hashicorp/tap brew install hashicorp/tap/terraform Terraform Cloud 계정 생성 Terraform Cloud Workspace 생성 CLI-driven workflow로 생성 이를 통해, 로컬 환경에서 CLI로 작업을 진행해도, Terraform의 실질적인 실행 및 백앤드는 Terraform Cloud가 됩니다. Terraform Cloud Workspace Overview 진행 Terraform Cloud 토큰 생성 및 등록 터미널 → terraform login 명령어 입력 → yes..
Pull Request 충돌 발생 이유 대체적으로 아래와 같은 상황으로 인해 Pull Request 충돌이 발생합니다. master 브랜치에서 feature_x 와 feature_y 브랜치를 동시에 생성 feature_x 는 README.md 를 수정하여 master 에 merge 가 완료됨 feature_y 가 README.md 를 수정하여 master 에 pull request 하는 순간 충돌 발생 해결 방법 생각보다 간단합니다. Pull request Target 브랜치의 변경 사항을, Pull request Source 브랜치로 가져오면 됩니다. 예를 들어, feature_y 브랜치에서 master 브랜치로 pull request 하는 과정에 충돌이 생겼다면 feature_y 브랜치에서 maste..
들어가기 앞서, 해당 포스트에선, 터미널에서 GitHub 원격 브랜치에 접근하기 위한 방법을 다뤄보겠습니다. 아래 순서대로 진행됩니다. 브랜치 확인 원격 브랜치를 로컬로 가져온 뒤 접근 해당 브랜치 내용 수정 후, 해당 브랜치로 Push 해당 브랜치에서 메인 브랜치로 Merge 원격 브랜치 갱신 git remote update 원격 브랜치 확인 git branch -r : 원격 브랜치 리스트 확인 # git branch -a : 로컬 브랜치 리스트 확인 원격 브랜치를 로컬로 가져온 뒤 접근 git checkout -t origin/"접근 Bracnh 이름" 원격 저장소의 branch와 동일한 이름의 branch를 로컬 저장소에 생성하면서, 해당 branch로 접근합니다. 로컬 브랜치 내용 수정 후, 원격..
DevOps 란? 개발 및 운영을 관리하고 CI/CD를 위한 파이프라인을 구성하고 자동화하는 역할을 의미합니다. CI/CD 란? 애플리케이션 개발 단계를 자동화하여, 보다 빠른 주기로 고객들에게 서비스를 제공하는 개발 방식입니다. CI 란? Continous Integration(지속적 통합)으로, 빌드, 테스트, 머지를 자동화하는 것을 의미합니다. 만약, 개발자가 하위 브랜치의 코드를 업데이트 했을 경우, 개발자가 직접 해당 브랜치를 빌드하고 테스트한 뒤, 문제가 없는지 확인하고 main 브랜치와 병합한다면, 시간이 많이 소요될 수 밖에 없습니다. 하지만, CI 서비스를 사용한다면, 하위 브랜치의 코드를 업데이트 하는 것만으로도, 빌드와 테스트를 자동으로 트리거되어 검증할 수 있게 됩니다. 결과적으로,..