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-0.11.2.tar.gz (140.1 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-0.11.2-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cli_onprem-0.11.2.tar.gz
Algorithm Hash digest
SHA256 07afa946677f17d44956a2f44090b94b0ea652749d1d7b55802ed37bf6bbc3b0
MD5 e279a4f037d96a522707613a54407306
BLAKE2b-256 8565893dbf0189ecc0475f64356812f06d5f8883c9214d10fd9b1f170e06e61c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cli_onprem-0.11.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0db924c51d27ad4601ab3985f696f7be387a6913a76372975acb831cc3a2cda2
MD5 472cc155c1dfee2353544552d3ce2a9a
BLAKE2b-256 ed98b00447861a38afd2d99340c4775e5e63b399d78dd5575d30bb847bee2091

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