c1a69a5ed19ddd40d3e9c83146310cfee8e54e57
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
# 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
# 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 파일을 생성하고 다음 내용을 설정하세요:
# 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
실행 방법
# 개발 서버 실행
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 처리
- 메인 페이지에서 스크립트 선택
- IP 주소 입력 (각 줄에 하나씩)
- "처리" 버튼 클릭
- 실시간 진행 상황 확인
- 완료 후 결과 파일 다운로드
2. MAC/GUID 변환
- 해당 섹션에서 데이터 입력
- 필요시 서버 리스트 입력
- 변환 버튼 클릭
- 생성된 Excel 파일 다운로드
3. 파일 관리
- 처리된 파일 목록에서 파일 확인
- "보기" 버튼으로 내용 미리보기
- 다운로드 또는 삭제 가능
- 자동 백업 기능으로 안전하게 관리
🔧 주요 기능 상세
크로스 플랫폼 지원
- 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
📧 연락처
프로젝트 관련 문의사항이 있으시면 이슈를 등록해주세요.
Description
Languages
Python
52.2%
Shell
16.2%
HTML
15.5%
JavaScript
9.3%
CSS
6.7%