본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

tfsort a CLI utility to sort Terraform variables and outputs

0

tfsort는 Terraform 변수, 출력, locals 및 terraform 블록을 알파벳 순으로 정렬하는 명령줄 유틸리티입니다.

오픈소스정렬

소개

tfsort는 Terraform 변수, 출력, locals 및 terraform 블록을 알파벳 순으로 정렬하는 명령줄 유틸리티입니다. Alex Nabokikh가 개발했으며, 파일 간 간격 문제를 수정하고 불필요한 앞뒤 개행 문자를 제거합니다. 파일 또는 stdin에서 입력을 읽어 파일, 새 파일 또는 stdout으로 출력할 수 있으며, 디렉터리를 재귀적으로 처리할 수 있습니다.

상세정보

알파벳 정렬

Terraform 파일의 variable, output, locals 및 terraform 블록을 알파벳 순으로 정렬합니다.

유연한 입력/출력

특정 파일, 디렉터리 또는 표준 입력(stdin)에서 읽을 수 있습니다. 출력 옵션으로는 입력 파일 덮어쓰기, 새 파일 쓰기 또는 표준 출력(stdout)으로 내보내기가 있습니다.

재귀적 처리

디렉터리와 모든 하위 디렉터리의 .tf, .hcl, .tofu 파일을 처리합니다. .git, .terraform, .terragrunt-cache와 같은 일반적인 버전 관리 및 Terraform 유틸리티 디렉터리는 자동으로 건너뜁니다.

드라이 런 모드

-d 또는 –dry-run 플래그를 사용하면 파일을 수정하지 않고 변경 사항을 미리 볼 수 있습니다. 정렬된 내용이 표준 출력으로 출력됩니다.

코드 포맷팅

정렬된 블록 사이의 간격을 수정하고 파일 시작이나 끝의 불필요한 개행 문자를 제거합니다.

Chocolatey를 통한 Windows 설치

Windows 사용자는 Chocolatey 패키지 관리자를 통해 tfsort를 설치할 수 있습니다. 관리자 권한으로 명령 프롬프트 또는 PowerShell을 열고 다음 명령을 실행합니다.

choco install tfsort

이 명령은 공식 Chocolatey 저장소에서 tfsort 패키지를 다운로드하고 설치합니다.

기타 설치 방법

Homebrew (macOS/Linux): brew tap alexnabokikh/tfsort seguido de brew install tfsort

Nix: nix-env -iA nixpkgs.tfsort

Go 설치: go install github.com/AlexNabokikh/tfsort@latest

바이너리 릴리스: GitHub 릴리스 페이지에서 운영 체제에 맞는 바이너리를 다운로드할 수 있습니다.

소스에서 빌드: 저장소를 클론한 후 go build . 명령을 실행하여 tfsort 실행 파일을 생성할 수 있습니다.

명령어 구조

기본 명령어 형식은 다음과 같습니다:

tfsort [플래그] [파일…]

인수로는 처리할 Terraform/HCL 파일 경로 또는 디렉터리 경로를 지정할 수 있습니다. 표준 입력을 사용하려면 ‘-‘ 문자를 사용합니다 (예: cat file.tf | tfsort -).

주요 플래그

-o, –out <path>: 출력 파일 경로를 지정합니다. 입력이 파일이고 -o가 제공되지 않으면 입력 파일이 덮어쓰여집니다. 입력이 stdin이고 -o가 제공되지 않으면 출력은 표준 출력으로 갑니다. 이 플래그는 -r, –recursive와 함께 사용할 수 없습니다.

-d, –dry-run: 파일을 수정하지 않고 변경 사항을 미리 봅니다. 정렬된 내용이 표준 출력으로 출력됩니다.

-h, –help: 도움말 메시지를 표시합니다.

-v, –version: 설치된 버전 정보를 표시합니다.

이런 경우에 유용합니다

Terraform 프로젝트를 협업하여 개발하는 엔지니어에게 유용합니다. 변수나 출력 블록이 무작위 순서로 배치되어 가독성이 떨어질 때, tfsort를 실행하면 일관된 알파벳 순서로 정렬하여 코드 검토 및 유지보수를 쉽게 할 수 있습니다. 특히 대형 인프라 프로젝트에서 여러 팀원이 파일을 수정할 때 표준화된 형식을 유지하는 데 도움이 됩니다.

Terraform 모듈을 공유하거나 오픈소스에 기여할 때, 정렬된 블록은 코드의 전문성을 높이고 불필요한 머지 충돌을 줄입니다. CI/CD 파이프라인에 통합하여 코드 품질 검사 단계에서 자동으로 실행할 수도 있습니다.

지원 환경·시스템 요구사항

증거에 명시된 특정 시스템 요구사항은 없습니다. Go로 작성된 바이너리이므로 Windows, macOS, Linux에서 실행할 수 있으며, Chocolatey를 통해 Windows에 쉽게 설치할 수 있습니다.

최신 버전·업데이트

현재 버전은 0.7.1이며, 저장소의 커밋 기록을 통해 지속적인 업데이트가 이루어지고 있음을 확인할 수 있습니다.

제한 사항·확인 사항

증거에 명시된 특정 제한 사항은 없습니다. 표준 Terraform 파일(.tf, .hcl, .tofu)만 처리하며, 다른 파일 형식은 무시됩니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.