From 5cbe9a25244e0e3d448004adab8eb0318ac51400 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sun, 5 Oct 2025 12:12:06 +0900 Subject: [PATCH] Update README.md --- README.md | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 229 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8232138..3aa2b95 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,230 @@ -# iDRAC_Info +# iDRAC Info Manager +Flask 기반 iDRAC 서버 관리 및 자동화 도구 + +## 📋 목차 + +- [소개](#소개) +- [주요 기능](#주요-기능) +- [기술 스택](#기술-스택) +- [시작하기](#시작하기) +- [프로젝트 구조](#프로젝트-구조) +- [사용법](#사용법) +- [라이선스](#라이선스) + +## 📖 소개 + +iDRAC Info Manager는 Dell iDRAC 서버 관리를 자동화하고 효율적으로 처리하기 위한 웹 기반 도구입니다. IP 주소 처리, 스크립트 실행, 파일 관리 등 서버 관리에 필요한 다양한 기능을 제공합니다. + +## ✨ 주요 기능 + +### IP 처리 및 스크립트 실행 +- 다중 IP 주소에 대한 일괄 스크립트 실행 +- 실시간 처리 상태 모니터링 (SocketIO) +- 처리 결과 자동 저장 및 관리 + +### 파일 관리 +- 업로드된 파일 자동 백업 +- 실시간 파일 모니터링 (Watchdog) +- 파일 내용 미리보기 및 다운로드 +- 안전한 파일 삭제 기능 + +### 데이터 변환 도구 +- **MAC to Excel**: MAC 주소 목록을 Excel 파일로 변환 +- **GUID to Excel**: GUID 데이터를 Excel 파일로 변환 +- 서버 리스트 관리 (덮어쓰기 옵션 지원) + +### 사용자 관리 +- Flask-Login 기반 인증 시스템 +- 사용자별 권한 관리 + +### 알림 기능 +- Telegram Bot 연동 (선택 사항) +- 처리 완료 알림 + +## 🛠 기술 스택 + +### Backend +- **Framework**: Flask 3.0.0 +- **Database**: SQLAlchemy (Flask-SQLAlchemy 3.1.1) +- **Authentication**: Flask-Login 0.6.3 +- **Migration**: Flask-Migrate 4.0.5 +- **Real-time**: Flask-SocketIO 5.3.5 + +### Libraries & Tools +- **Watchdog**: 파일 시스템 모니터링 +- **Telegram Bot**: 알림 전송 +- **Chardet**: 문자 인코딩 감지 +- **Natsort**: 자연스러운 정렬 + +### Frontend +- Bootstrap 5 +- Bootstrap Icons +- JavaScript (SocketIO Client) + +## 🚀 시작하기 + +### 필수 요구사항 + +- Python 3.8 이상 +- pip (Python 패키지 관리자) + +### 설치 방법 + +#### Windows + +```bash +# 1. 저장소 클론 +git clone https://github.com/yourusername/idrac_info.git +cd idrac_info + +# 2. 가상환경 생성 및 활성화 +python -m venv venv +venv\Scripts\activate + +# 3. 의존성 설치 +pip install -r requirements.txt + +# 4. 데이터베이스 초기화 +flask db upgrade + +# 5. 환경 변수 설정 (.env 파일 생성) +# .env.example을 참고하여 설정 +``` + +#### Linux + +```bash +# 1. 저장소 클론 +git clone https://github.com/yourusername/idrac_info.git +cd idrac_info + +# 2. 가상환경 생성 및 활성화 +python3 -m venv venv +source venv/bin/activate + +# 3. 의존성 설치 +pip install -r requirements.txt + +# 4. 데이터베이스 초기화 +flask db upgrade + +# 5. 환경 변수 설정 (.env 파일 생성) +# .env.example을 참고하여 설정 +``` + +### 환경 설정 + +`.env` 파일을 생성하고 다음 내용을 설정하세요: + +```env +# Flask 설정 +SECRET_KEY=your-secret-key-here +FLASK_ENV=development + +# 데이터베이스 +DATABASE_URL=sqlite:///app.db + +# Telegram Bot (선택 사항) +TELEGRAM_BOT_TOKEN=your-bot-token +TELEGRAM_CHAT_ID=your-chat-id + +# 폴더 경로 +UPLOAD_FOLDER=uploads +BACKUP_FOLDER=backup +XML_FOLDER=xml_files +SCRIPT_FOLDER=scripts +LOG_FOLDER=logs +IDRAC_INFO_FOLDER=idrac_info +``` + +### 실행 방법 + +```bash +# 개발 서버 실행 +python app.py + +# 또는 +flask run +``` + +브라우저에서 `http://localhost:5000` 접속 + +## 📁 프로젝트 구조 + +``` +idrac_info/ +├── app.py # 메인 애플리케이션 +├── config.py # 설정 파일 +├── requirements.txt # Python 의존성 +├── backend/ +│ ├── models/ # 데이터베이스 모델 +│ │ └── user.py +│ ├── routes/ # 라우트 핸들러 +│ │ ├── main.py +│ │ └── auth.py +│ ├── services/ # 비즈니스 로직 +│ │ ├── logger.py +│ │ ├── watchdog_handler.py +│ │ └── platform_utils.py +│ ├── templates/ # HTML 템플릿 +│ │ ├── base.html +│ │ └── index.html +│ └── static/ # 정적 파일 +│ ├── css/ +│ └── js/ +├── uploads/ # 업로드 파일 +├── backup/ # 백업 파일 +├── scripts/ # 실행 스크립트 +├── logs/ # 로그 파일 +└── migrations/ # 데이터베이스 마이그레이션 +``` + +## 💡 사용법 + +### 1. IP 처리 + +1. 메인 페이지에서 스크립트 선택 +2. IP 주소 입력 (각 줄에 하나씩) +3. "처리" 버튼 클릭 +4. 실시간 진행 상황 확인 +5. 완료 후 결과 파일 다운로드 + +### 2. MAC/GUID 변환 + +1. 해당 섹션에서 데이터 입력 +2. 필요시 서버 리스트 입력 +3. 변환 버튼 클릭 +4. 생성된 Excel 파일 다운로드 + +### 3. 파일 관리 + +1. 처리된 파일 목록에서 파일 확인 +2. "보기" 버튼으로 내용 미리보기 +3. 다운로드 또는 삭제 가능 +4. 자동 백업 기능으로 안전하게 관리 + +## 🔧 주요 기능 상세 + +### 크로스 플랫폼 지원 + +- Windows와 Linux 모두 지원 +- OS별 최적화된 SocketIO 모드 자동 선택 + - Windows: Threading 모드 + - Linux: Eventlet 모드 + +### 실시간 모니터링 + +- SocketIO를 통한 실시간 진행 상황 업데이트 +- Watchdog를 통한 파일 변경 감지 +- 자동 화면 갱신 + +### 보안 + +- Flask-Login 기반 사용자 인증 +- CSRF 토큰 보호 +- 안전한 파일 업로드 및 처리 + +## 📧 연락처 + +프로젝트 관련 문의사항이 있으시면 이슈를 등록해주세요. \ No newline at end of file