본문 바로가기
INFRA/Operation

Aztfy 개념 및 사용법

by BTC_Dana 2023. 1. 3.

 

안녕하세요! 하씨가문의 영광입니다!
새해가 밝았습니다.

다들 새해 복 많이 받으시길 바랍니다.
오늘은 Aztfy가 어떤 것이고 어떻게 사용하는 지에 대해 알아보도록 하겠습니다.

Don't have a good day, Have a great day!

목차

  1. aztfy란
  2. aztfy 설치
  3. 사전 작업
  4. 작업 예시

 


 

1. aztfy란

 aztfy란 풀어서 Azure Terrafy, Azure Portal에 이미 배포되어 있는 리소스를 Terraform 상태로 가져와 코드로 구성 및 생성합니다. aztfy 공식 깃허브 문서에 따르면 Terraform 상태와 구성은 리소스 상태와 최대한 일치하게 구성되게 만들었으며, 배포시 terrraform plan과 차이점이 없다고 기술되어 있습니다.

 

Azure에서만 가능합니다 꼬옥!!

 

쉽게 말해, 여러분의 Azure Portal에 리소스들이 배포되어 있다면 전체적으로 또는 부분적으로 리소스들을 aztfy를 통해 terraform 코드로 구성 및 생성시킬 수 있습니다.

 

공식문서 : https://github.com/Azure/aztfy

 

 

2. aztfy 설치

 

우선 깃허브 문서 에 들어가 Windows 버전(현재 로컬 Windows 환경)에 맞게 설치를 진행합니다.

 

 

설치가 되면 알집을 풀어서 C드라이브 또는 각자 등록할 장소에 파일을 옮긴 뒤 환경 변수로 등록합니다.

 

설치가 완료되었다면 이제 사전 작업으로 들어가겠습니다.

 

2.1 사전 작업

 

aztfy를 진행할 리포지토리를 생성합니다.

PS C:\> mkdir aztfytest

 

 

Azure CLI을 통해 자신의 구독 계정으로 로그인 및 계정 확인을 진행합니다.

PS C:\aztfytest> az login
PS C:\aztfytest> az account show

 

이제부터 실제 작업을 진행해보겠습니다.

 

2.2 작업 예시

 

작업 전에 aztfy의 옵션 및 커멘드를 확인해보겠습니다.

PS C:\aztfytest> aztfy --help
NAME:
   aztfy - Bring existing Azure resources under Terraform's management

USAGE:
   aztfy [command] [option]

VERSION:
   v0.8.0(a7c179f)

COMMANDS:
   resource, res       Terrafying a single resource
   resource-group, rg  Terrafying a resource group and the nested resources resides within it
   query               Terrafying a customized scope of resources determined by an Azure Resource Graph where predicate
   mapping-file, map   Terrafying a customized scope of resources determined by the resource mapping file
   help, h             Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

 

 

먼저 사용할 커멘드는 전체 리소스 그룹을 가져와 코드로 생성해보겠습니다.

 

아래와 같이 Y or N를 선택하는 화면이 나올 시 Y를 입력해 진행합니다.

Y : 새로운 파일에 덮어쓰기, N : 새로운 파일에 추가하기

 

aztfy resource-group resoure-group-name

PS C:\aztfytest> aztfy resource-group jw-SA-Env-rg

The output directory is not empty. Please choose one of actions below:

* Press "Y" to overwrite the existing directory with new files
* Press "N" to append new files and add to the existing state instead
* Press other keys to quit

> Y

 

 

그럼 다음과 같이 열심히 aztfy가 돌아가고 있는 모습을 볼 수 있습니다.

 

과정이 끝났다면 다음과 같은 결과화면을 볼 수 있습니다.

저의 구독 계정 리소스 그룹에 배포되어 있는 리소스들이 배포되어 있는 화면을 볼 수 있습니다.

 

여기서 화살표 방향으로 아래위로 리소스 선택이 가능하며 원하지 않는 리소스를 코드로 배포하지 않을 경우 delete를 입력해 리소스를 삭제할 수 있으며 원하지 않을 경우 q를 통해 나갈 수 있습니다.

 

자 이제 Import(w)를 통해서 코드로 배출해봅시다.

 

코드로 배포되었다는 다음과 같은 화면이 출력될 시 q를 눌러 나옵니다.

 

 

짜잔!! main.tf로 들어가니 Azure Portal에 배포되었던 리소스를 코드로 확인할 수 있습니다!

속성값은 모두 가져오지만 리소스 이름은 자신의 입맛에 맞게 고쳐보면 좋을 거 같습니다.

 


다음시간에는 리소스를 하나하나 생성해서 다른 계정으로
리소스를 배포해보도록 하겠습니다.
오늘도 읽어주셔서 감사합니다:)

 

 

 

'INFRA > Operation' 카테고리의 다른 글

Terragrunt 개념 및 사용법 - 1  (0) 2023.01.16
Aztfy 개념 및 사용법 - 2  (0) 2023.01.09
terraform backend 설정 - local  (0) 2022.12.22
Scouter 모니터링  (0) 2022.12.21
terraform backend 설정 - s3  (0) 2022.12.21

댓글