Skip to main content

CLI tool for infrastructure engineers

Project description

CLI-ONPREM

인프라 엔지니어를 위한 반복 작업 자동화를 위한 Typer 기반 Python CLI 도구입니다.

🚀 주요 기능

🐳 Docker 이미지 관리

  • docker-tar: Docker 이미지를 표준화된 tar 파일로 저장
    • 멀티 아키텍처 지원 (amd64/arm64)
    • 자동 재시도 기능
    • 스마트 파일명 생성

📦 Helm 차트 분석

  • helm-local: Helm 차트에서 Docker 이미지 목록 추출
    • .tgz 아카이브 및 디렉토리 지원
    • 다중 values 파일 적용
    • 이미지 이름 정규화

☁️ S3 동기화 및 공유

  • s3-share: AWS S3와 로컬 파일 동기화
    • 프로파일 기반 자격증명 관리
    • 증분 동기화 (MD5 체크섬)
    • Presigned URL 생성

📂 대용량 파일 분할

  • tar-fat32: FAT32 호환 파일 분할 압축
    • 무결성 검증 (SHA256)
    • 자동 복원 스크립트 생성
    • 설정 가능한 청크 크기

설치

# PyPI에서 설치
pipx install cli-onprem

# 또는 소스에서 설치
git clone https://github.com/cagojeiger/cli-onprem.git
cd cli-onprem
pipx install -e . --force

소스에서 설치할 때 일반 사용자는 위 명령어만 실행하면 됩니다.

사용법

기본 명령어

# 도움말 보기
cli-onprem --help

# 쉘 자동완성 활성화
cli-onprem --install-completion

# 특정 쉘에 대해 자동완성 활성화
cli-onprem --install-completion bash  # 또는 zsh, fish

빠른 시작 예제

# Docker 이미지를 tar로 저장
cli-onprem docker-tar save nginx:latest

# Helm 차트에서 이미지 목록 추출
cli-onprem helm-local extract-images ./mychart.tgz

# S3에 파일 동기화
cli-onprem s3-share sync ./mydata --bucket mybucket

# 대용량 파일 분할 압축
cli-onprem tar-fat32 pack ./large-file --chunk-size 2G

📚 Commands

🐳 docker-tar

Docker 이미지를 tar 파일로 저장하여 오프라인 환경에서 사용할 수 있도록 합니다.

cli-onprem docker-tar save <image> [options]

주요 옵션:

  • --arch: 특정 아키텍처 선택 (기본: 모든 아키텍처)
  • --destination, -d: 저장 디렉토리 지정
  • --force, -f: 기존 파일 덮어쓰기
  • --dry-run: 실제 저장 없이 시뮬레이션

자세한 사용법은 docker-tar 문서를 참조하세요.

⚓ helm-local

Helm 차트에서 사용하는 모든 Docker 이미지를 분석하고 추출합니다.

cli-onprem helm-local extract-images <chart-path> [options]

주요 옵션:

  • --values, -f: 커스텀 values 파일 지정 (여러 개 가능)
  • --json: JSON 형식으로 출력
  • --raw: 정규화 없이 원본 이미지 이름 출력

자세한 사용법은 helm-local 문서를 참조하세요.

☁️ s3-share

AWS S3를 활용한 안전한 파일 공유 및 동기화 솔루션입니다.

cli-onprem s3-share <command> [options]

하위 명령어:

  • init-credential: AWS 자격 증명 설정
  • init-bucket: S3 버킷 초기화
  • sync: 파일 동기화 (증분 백업)
  • presign: 임시 다운로드 URL 생성

자세한 사용법은 s3-share 문서를 참조하세요.

📦 tar-fat32

FAT32 파일 시스템의 4GB 제한을 우회하여 대용량 파일을 분할 압축합니다.

cli-onprem tar-fat32 <command> [options]

하위 명령어:

  • pack: 파일/디렉토리를 분할 압축
  • restore: 분할된 파일 복원

주요 기능:

  • SHA256 무결성 검증
  • 자동 복원 스크립트 생성
  • 진행률 표시

자세한 사용법은 tar-fat32 문서를 참조하세요.

🛠️ 개발

이 프로젝트는 다음을 사용합니다:

  • 패키지 관리를 위한 uv
  • 코드 품질을 위한 pre-commit
  • 린팅 및 포맷팅을 위한 ruff, black, mypy
  • CI/CD를 위한 GitHub Actions

개발 환경 설정

개발에 필요한 의존성은 다음과 같이 설치합니다:

# 저장소 복제
git clone https://github.com/cagojeiger/cli-onprem.git
cd cli-onprem

# 의존성 설치
uv sync --locked --all-extras --dev

# pre-commit 훅 설치
pre-commit install

테스트 실행

pytest

📖 문서

각 명령어에 대한 자세한 문서는 docs/ 디렉토리에서 확인할 수 있습니다:

라이선스

MIT 라이선스

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cli_onprem-1.2.0.tar.gz (169.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cli_onprem-1.2.0-py3-none-any.whl (39.7 kB view details)

Uploaded Python 3

File details

Details for the file cli_onprem-1.2.0.tar.gz.

File metadata

  • Download URL: cli_onprem-1.2.0.tar.gz
  • Upload date:
  • Size: 169.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for cli_onprem-1.2.0.tar.gz
Algorithm Hash digest
SHA256 5270d72e71f42396326a99b73ccd821af9beeac06b39e04727a8ad4b1e6710aa
MD5 3a6edef6f096326bd057e6fe2aa93db3
BLAKE2b-256 b1818278fca3196548c1896c2772f4eb0325a961f8c53a1d4b7e6259c1ea4bde

See more details on using hashes here.

File details

Details for the file cli_onprem-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: cli_onprem-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for cli_onprem-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 753ce10e486a7f31acb9b8f41820108cca57df216bc042e68d6e48d62c6691bd
MD5 b45485ce84f5775007990beefb77ece9
BLAKE2b-256 e3238abb485a2f3bb77ae687d8993edb30a644ae10b81b0e44ffff67d539fb8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page