설치_점검_스크립트

설치 점검 스크립트

아래는 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."
로그인하면 댓글을 남길 수 있습니다.
  • 설치_점검_스크립트.txt
  • 마지막으로 수정됨: 2025/02/03 01:44
  • 저자 koov