설치 점검 스크립트
아래는 kolla-ansible
로 오픈스택 배포 후 기본적인 기능 테스트를 수행하는 스크립트 이다.
#!/bin/bash # 환경 변수 설정 source /etc/kolla/admin-openrc.sh # 색상 설정 GREEN='\033[0;32m' RED='\033[0;31m' NC='\033[0m' # 색상 초기화 # 로그 파일 설정 LOGFILE="openstack-health-check.log" echo "OpenStack Health Check - $(date)" > $LOGFILE # 1. Keystone (인증 서비스) 확인 echo "Checking Keystone..." if openstack token issue > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Keystone authentication works" | tee -a $LOGFILE else echo -e "${RED}[FAIL]${NC} Keystone authentication failed" | tee -a $LOGFILE fi # 2. Glance (이미지 서비스) 확인 echo "Checking Glance..." if openstack image list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Glance is operational" | tee -a $LOGFILE else echo -e "${RED}[FAIL]${NC} Glance service check failed" | tee -a $LOGFILE fi # 3. Nova (컴퓨팅 서비스) 확인 echo "Checking Nova..." if openstack compute service list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Nova services are up" | tee -a $LOGFILE else echo -e "${RED}[FAIL]${NC} Nova service check failed" | tee -a $LOGFILE fi # 4. Neutron (네트워크 서비스) 확인 echo "Checking Neutron..." if openstack network list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Neutron is operational" | tee -a $LOGFILE else echo -e "${RED}[FAIL]${NC} Neutron service check failed" | tee -a $LOGFILE fi # 5. Cinder (블록 스토리지) 확인 echo "Checking Cinder..." if openstack volume list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Cinder is operational" | tee -a $LOGFILE else echo -e "${RED}[FAIL]${NC} Cinder service check failed" | tee -a $LOGFILE fi # 6. Swift (오브젝트 스토리지) 확인 (선택 사항) echo "Checking Swift (optional)..." if openstack container list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Swift is operational" | tee -a $LOGFILE else echo -e "${RED}[WARN]${NC} Swift service not configured or failed" | tee -a $LOGFILE fi # 7. Heat (오케스트레이션 서비스) 확인 echo "Checking Heat..." if openstack orchestration service list > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Heat is operational" | tee -a $LOGFILE else echo -e "${RED}[WARN]${NC} Heat service check failed or not configured" | tee -a $LOGFILE fi # 8. 인스턴스 및 네트워크 생성 (테스트) echo "Testing Instance and Network Creation..." TEST_NET="test-network" TEST_SUBNET="test-subnet" TEST_ROUTER="test-router" TEST_INSTANCE="test-instance" FLAVOR="m1.small" IMAGE=$(openstack image list --format value -c ID | head -n 1) KEYPAIR="mykey" # 네트워크 생성 openstack network create $TEST_NET openstack subnet create --network $TEST_NET --subnet-range 192.168.100.0/24 $TEST_SUBNET openstack router create $TEST_ROUTER openstack router add subnet $TEST_ROUTER $TEST_SUBNET # 인스턴스 생성 if openstack server create --image $IMAGE --flavor $FLAVOR --network $TEST_NET --key-name $KEYPAIR $TEST_INSTANCE > /dev/null 2>&1; then echo -e "${GREEN}[OK]${NC} Instance creation succeeded" | tee -a $LOGFILE openstack server delete $TEST_INSTANCE else echo -e "${RED}[FAIL]${NC} Instance creation failed" | tee -a $LOGFILE fi # 리소스 정리 openstack router remove subnet $TEST_ROUTER $TEST_SUBNET openstack router delete $TEST_ROUTER openstack subnet delete $TEST_SUBNET openstack network delete $TEST_NET # 9. 최종 결과 출력 echo -e "Health check completed. Check ${GREEN}$LOGFILE${NC} for details."
로그인하면 댓글을 남길 수 있습니다.