# 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 토큰 보호 - 안전한 파일 업로드 및 처리 ### git 신규 업데이트 방법 # 변경사항 올리기 git add -A git commit -m "update" git push # 원격 최신 받기 git pull # 현재 원격 확인 git remote -v ## 📧 연락처 프로젝트 관련 문의사항이 있으시면 이슈를 등록해주세요.