Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
OpenStack Integration Test Suite 가이드
OpenStack Integration Test Suite 소개
초록
머리말
이 가이드에서는 Red Hat OpenStack Platform 환경에서 OpenStack Integration Test Suite를 설치, 구성 및 관리하는 방법에 대해 설명합니다.
1장. 소개
OpenStack은 다양한 프로젝트로 구성되어 있으므로 OpenStack 클러스터 내 프로젝트의 상호 운용성을 테스트하는 것이 중요합니다. OpenStack Integration Test Suite(tempest)는 Red Hat OpenStack Platform 배포의 통합 테스트를 자동화합니다. 테스트를 실행하면 클러스터가 예상대로 작동하는지, 특히 업그레이드 후 잠재적인 문제에 대한 조기 경고도 제공할 수 있습니다.
Integration Test Suite에는 OpenStack API 검증 및 시나리오 테스트에 대한 테스트와 자체 유효성 검사를 위한 단위 테스트가 포함되어 있습니다. Integration Test Suite는 테스트 러너로 Tempest를 사용하여 OpenStack 공용 API를 사용하여 블랙 박스 테스트를 수행합니다.
2장. OpenStack Integration Test Suite 테스트
OpenStack Integration Test Suite에는 많은 애플리케이션이 있습니다. OpenStack 핵심 프로젝트에 커밋을 위한 게이트 역할을 하며, 클라우드 배포에 대한 부하를 생성하는 테스트를 강조할 수 있으며 CLI 테스트를 수행하여 명령줄의 응답 형식을 확인할 수 있습니다. 그러나 관련 된 기능은 시나리오 테스트
및 API 테스트
입니다. 이러한 테스트는 OpenStack 클라우드 배포에 대해 실행됩니다. 다음 섹션에는 이러한 각 테스트 구현에 대한 정보가 포함되어 있습니다.
2.1. 시나리오 테스트
시나리오 테스트는 서비스 간 통합 지점을 테스트하기 위해 일반적인 최종 사용자 작업 워크플로우를 시뮬레이션합니다. 테스트 프레임워크는 구성을 수행하고, 서비스 간 통합을 테스트한 다음, 자동으로 제거됩니다. 테스트에서 관련 서비스를 사용하여 테스트에 태그를 지정하여 테스트에서 사용하는 클라이언트 라이브러리를 명확히 합니다.
시나리오는 사용 사례를 기반으로 합니다. 예를 들면 다음과 같습니다.
- 이미지 서비스에 이미지 업로드
- 이미지에서 인스턴스 배포
- 인스턴스에 볼륨 연결
- 인스턴스의 스냅샷 생성
- 인스턴스에서 볼륨 분리
2.2. API 테스트
API 테스트는 OpenStack API를 검증합니다. 테스트에서는 OpenStack API의 OpenStack Integration Test Suite 구현을 사용합니다. 유효한 JSON과 유효하지 않은 JSON을 모두 사용하여 오류 응답이 유효한지 확인할 수 있습니다. 테스트를 독립적으로 실행할 수 있으며 이전 테스트 상태에 의존할 필요가 없습니다.
3장. OpenStack Integration Test Suite 설치
이 섹션에는 director 또는 수동 설치와 함께 OpenStack Integration Test Suite 설치에 대한 정보가 포함되어 있습니다.
3.1. Director 사용
stack
사용자의 홈 디렉터리에 있는 undercloud.conf
파일을 편집합니다. enable_tempest
매개변수가 true
로 설정되어 있는지 확인합니다.
enable_tempest = true
언더클라우드가 이미 설치되어 있는 경우 undercloud.conf
파일을 편집한 다음 openstack undercloud install
명령을 실행하여 언더클라우드에 추가 설정을 포함할 수 있습니다.
$ openstack undercloud upgrade
이제 3.3절. “OpenStack Integration Test Suite 패키지 설치” 에 설명된 Tempest 패키지
및 플러그인을 설치할 준비가 되었습니다.
3.2. 수동 설치 준비
OpenStack Integration Test Suite를 실행하려면 먼저 필요한 패키지를 설치하고 다양한 OpenStack 서비스 및 기타 테스트 동작 스위치를 찾을 수 있는 Integration Test Suite를 알리는 구성 파일을 생성해야 합니다.
OpenStack Integration Test Suite를 설치하려면 Red Hat OpenStack Platform 환경에서 다음 네트워크를 사용할 수 있어야 합니다.
- 유동 IP를 제공할 수 있는 외부 네트워크
- 사설 네트워크
이러한 네트워크는 라우터를 통해 연결되어야 합니다.
사설 네트워크를 만듭니다. 네트워크 배포에 따라 다음 옵션을 지정합니다.
$ openstack network create <network_name> --share $ openstack subnet create <subnet_name> --subnet-range <address/prefix> \ --network <network_name> $ openstack router create <router_name> $ openstack router add subnet <router_name> <subnet_name>
공용 네트워크를 생성합니다. 네트워크 배포에 따라 다음 옵션을 지정합니다.
$ openstack network create <network_name> --external \ --provider-network-type flat $ openstack subnet create <subnet_name> --subnet-range <address/prefix> \ --gateway <default_gateway> --no-dhcp --network <network_name> $ openstack router set <router_name> --external-gateway <public_network_name>
이제 가상 머신의 템플릿 내에 OpenStack Integration Test Suite를 설치하고 구성할 준비가 되었습니다. 자세한 내용은 3.3절. “OpenStack Integration Test Suite 패키지 설치”의 내용을 참조하십시오.
3.3. OpenStack Integration Test Suite 패키지 설치
OpenStack Integration Test Suite와 관련된 패키지를 설치합니다.
$ sudo yum -y install openstack-tempest
이 명령은 tempest 플러그인을 설치하지 않습니다. OpenStack 설치에 따라 플러그인을 수동으로 설치해야 합니다.
사용자 환경의 각 구성 요소에 적절한 Tempest 플러그인을 설치합니다. 예를 들어 다음 명령을 실행하여 keystone, horizon, neutron, cinder, telemetry 플러그인을 설치합니다.
$ sudo yum install python-keystone-tests-tempest python-horizon-tests-tempest python-neutron-tests-tempest python-cinder-tests-tempest python-telemetry-tests-tempest
각 OpenStack 구성 요소의 템플릿 플러그인 목록은 3.3.1절. “Tempest Plug-in 패키지 목록” 에서 참조하십시오.
openstack-tempest-all
패키지를 설치할 수도 있습니다. 이 패키지에는 모든 Tempest 플러그인이 포함되어 있습니다.
3.3.1. Tempest Plug-in 패키지 목록
다음 명령을 실행하여 tempest 테스트 패키지 목록을 검색합니다.
$ sudo yum search $(openstack service list -c Name -f value) 2>/dev/null | grep test | awk '{print $1}'
구성 요소 | 패키지 이름 |
---|---|
Barbican | python-barbican-tests-tempest |
cinder | python-cinder-tests-tempest |
Designate | python-designate-tests-tempest |
ec2-api | python-ec2api-tests-tempest |
heat | python-heat-tests-tempest |
Horizon | python-horizon-tests-tempest |
ironic | python-ironic-tests-tempest |
keystone | python-keystone-tests-tempest |
Kuryr | python-kuryr-tests-tempest |
manila | python-manila-tests-tempest |
mistral | python-mistral-tests-tempest |
networking-bgvpn | python-networking-bgpvpn-tests-tempest |
networking-l2gw | python-networking-l2gw-tests-tempest |
Neutron | python-neutron-tests-tempest |
nova-join | python-novajoin-tests-tempest |
octavia | python-octavia-tests-tempest |
patrole | python-patrole-tests-tempest |
Sahara | python-sahara-tests-tempest |
telemetry | python-telemetry-tests-tempest |
tripleo-common | python-tripleo-common-tests-tempest |
zaqar | python-zaqar-tests-tempest |
Tempest 테스트 패키지는 Python 버전에 따라 다릅니다. 예를 들어 시스템에서 Python 2를 사용하는 경우 Tempest 테스트 패키지를 설치할 때
로 교체해야 합니다.
python-
을 python2
python-telemetry-tests-tempest
패키지에는 aodh, panko, gnocchi 및 ceilometer 테스트에 대한 플러그인이 포함되어 있습니다. python-ironic-tests-tempest
패키지에는 ironic 및 ironic-inspector용 플러그인이 포함되어 있습니다.
4장. OpenStack Integration Test Suite 구성
4.1. 작업 공간 생성
대상 배포의 인증 정보를 가져옵니다.
대상이 언더클라우드에 있는 경우 언더클라우드의 인증 정보를 가져옵니다.
# source stackrc
대상이 오버클라우드에 있는 경우 오버클라우드의 인증 정보를 가져옵니다.
# source overcloudrc
Tempest(
Temp
est):# tempest init mytempest # cd mytempest
이 명령은
mytempest
라는 Tempest 작업 공간을 생성합니다.다음 명령을 실행하여 기존 작업 영역 목록을 확인합니다.
# tempest workspace list
etc/tempest.conf
파일을 생성하십시오.# discover-tempest-config --deployer-input ~/tempest-deployer-input.conf \ --debug --create --network-id <UUID>
UUID
를 외부 네트워크의 UUID로 바꿉니다.discover-tempest-config
명령에 포함할 수 있는 옵션에 대한 자세한 내용은discover-tempest-config --help
를 실행합니다. 예를 들어--image
옵션을 사용하여 사용하려는 이미지를 정의합니다.--image
옵션을 사용하여 이미지를 신속하게 할당하는 경우 할당된 이미지에 적합한 플레이버를 생성해야 할 수 있습니다.discover-tempest-config
, m1.nano 및 m1.micro로 만든 기본 플레이버는 이미지에 비해 너무 작을 수 있습니다. 플레이버를 만든 후 플레이버 id를 flavor_ref 및flavor_ref
_alttempest.conf
에 추가해야 합니다.discover-tempest-config
는 이전에config_tempest.py
라고 하며 동일한 매개 변수를 사용합니다.python-tempestconf
는openstack-tempest
의 종속성으로 설치된 python-tempestconf에서 제공합니다.
언더클라우드의 etc/tempest.conf
파일을 생성하려면 tempest-deployer-input.conf
파일의 리전 이름이 언더클라우드 배포의 이름과 동일한지 확인합니다. 이러한 이름이 일치하지 않으면 undercloud의 지역 이름과 일치하도록 tempest-deployer-input.conf
파일의 리전 이름을 업데이트합니다.
언더클라우드의 리전 이름을 검사하려면 다음 명령을 실행합니다.
$ source stackrc $ openstack region list
오버클라우드의 지역 이름을 검사하려면 다음 명령을 실행합니다.
$ source overcloudrc $ openstack region list
4.2. 수동으로 임시 설정
discover-tempest-config
명령은 tempest.conf
파일을 자동으로 생성합니다. 그러나 tempest.conf
파일이 환경의 구성에 해당하는지 확인해야 합니다.
4.2.1. 수동으로 임시 확장 목록 구성
기본 tempest.conf
파일에는 각 구성 요소에 대한 확장 프로그램 목록이 포함되어 있습니다. tempest.conf
파일의 각 구성 요소의 api_extensions
속성을 검사하고 확장 목록이 배포에 일치하는지 확인합니다.
배포에서 사용할 수 있는 확장 프로그램이 tempest.conf
파일의 api_extensions
속성의 extensions 목록에 일치하지 않으면 구성 요소가 tempest 테스트에서 실패합니다. 이 실패를 방지하려면 배포에서 사용할 수 있는 확장을 식별하고 api_extensions
매개변수에 포함해야 합니다. 배포에서 네트워크, 컴퓨팅, 볼륨 또는 ID 확장 목록을 가져오려면 다음 명령을 실행합니다.
$ openstack extension list [--network] [--compute] [--volume] [--identity]
4.2.2. heat_plugin 수동 구성
배포 구성에 따라 heat_plugin
플러그인을 수동으로 구성합니다. 다음 예제에는 heat_plugin
에 대한 최소 tempest.conf
설정이 포함되어 있습니다.
[service_available] heat_plugin = True [heat_plugin] username = demo password = *** project_name = demo admin_username = admin admin_password = **** admin_project_name = admin auth_url = http://10.0.0.110:5000//v3 auth_version = 3 user_domain_id = default project_domain_id = default user_domain_name = Default project_domain_name = Default region = regionOne instance_type = m1.nano minimal_instance_type = m1.micro image_ref = 7faed41e-a56c-4971-bf48-24e4e23e69a5 minimal_image_ref = 7faed41e-a56c-4971-bf48-24e4e23e69a5
tempest.conf
파일의 [service_available]
섹션에서 heat_plugin
을 True
로 설정해야 하며, [heat_plugin]
섹션의 username
속성에 있는 사용자는 _member_
여야 합니다. 예를 들어 다음 명령을 실행하여 _member_
역할을 demo
사용자에게 추가합니다.
$ openstack role add --user demo --project demo '_member_'
4.3. Tempest 설정 확인
현재 Tempest 구성을 확인합니다.
# tempest verify-config -o <output>
출력
은 Tempest가 업데이트된 구성을 쓰는 출력 파일입니다. 이는 원래 구성 파일과 다릅니다.
4.4. 로깅 구성 변경
로그 파일의 기본 위치는 tempest 작업 공간 내의 logs
디렉터리입니다.
이 디렉토리를 변경하려면 [DEFAULT]
섹션의 tempest.conf
에서 log_dir
을 원하는 디렉터리로 설정합니다.
[DEFAULT] log_dir = <directory>
고유한 로깅 구성 파일이 있는 경우 tempest.conf
의 [DEFAULT]
섹션에서 log_config_append
를 파일로 설정합니다.
[DEFAULT] log_config_append = <file>
log_config_append
속성을 설정하면 Tempest는 log_dir
특성을 포함하여 tempest.conf
의 다른 모든 로깅 구성을 무시합니다.
4.5. Microversion 테스트 구성
OpenStack Integration Test Suite는 API 마이크로 버전을 테스트하는 안정적인 인터페이스를 제공합니다. 이 섹션에서는 이러한 인터페이스를 사용하여 마이크로버전 테스트를 구현하는 방법을 설명합니다.
먼저 타겟 마이크로버전을 지정하려면 tempest.conf
구성 파일의 옵션을 구성해야 합니다. 지원되는 마이크로 버전이 OpenStack 클라우드에서 사용된 마이크로버전에 해당하도록 이러한 옵션을 구성합니다. 대상 마이크로 버전 범위를 지정하여 단일 Integration Test Suite 작업에서 여러 마이크로 버전 테스트를 실행할 수 있습니다.
예를 들어 구성 파일의 [
섹션에서 컴퓨팅 서비스의 마이크로버전 범위를 제한하려면 compute
]min_microversion
및 max_microversion
매개변수에 값을 할당합니다.
[compute] min_microversion = 2.14 max_microversion = latest
5장. Tempest 사용
이 섹션에서 명령을 실행하여 다양한 테스트 작업을 수행합니다. 단일 tempest run
명령에 여러 옵션을 결합할 수도 있습니다.
5.1. 사용 가능한 테스트 나열
--list-tests
또는 -l
옵션과 함께 tempest-run
명령을 실행하여 사용 가능한 템플릿 테스트 목록을 가져옵니다.
# tempest run -l
5.2. Smoke 테스트 실행
연기 테스트는 가장 중요한 기능 만 포함하는 예비 테스트의 유형입니다. 포괄적이지 않지만 스모크 테스트를 실행하면 문제를 식별하는 경우 시간을 절약할 수 있습니다.
# tempest run --smoke
5.3. 화이트리스트 파일을 사용하여 테스트 전달
허용 목록 파일은 포함하려는 테스트를 선택하는 정규식이 포함된 파일입니다. 정규 표현식은 줄 바꿈으로 구분됩니다.
허용 목록 파일을 사용하려면 --whitelist-file
또는 -w
옵션과 함께 tempest run
명령을 실행합니다.
# tempest run -w <whitelist_file>
5.4. 블랙리스트 파일을 사용하여 테스트 건너뛰기
블랙리스트 파일은 제외하려는 테스트를 선택하는 정규식이 포함된 파일입니다. 정규 표현식은 줄 바꿈으로 구분됩니다.
블랙리스트 파일을 사용하려면 --blacklist-file
또는 -b
옵션을 사용하여 tempest run
명령을 실행합니다.
# tempest run -b <blacklist_file>
5.5. Parallel Concurrently 또는 Serially에서 테스트 실행
테스트를 직렬로 실행합니다.
# tempest run --serial
테스트를 병렬로 실행합니다. 병렬 테스트는 기본값입니다.
# tempest run --parallel
테스트를 병렬로 실행할 때 사용할 작업자 수를 지정하려면 --concurrency
또는 -c
옵션을 사용합니다.
# tempest run --concurrency <workers>
기본적으로 Integration Test Suite는 사용 가능한 각 CPU에 하나의 작업자를 사용합니다.
5.6. 특정 테스트 실행
--regex
정규식 옵션을 사용하여 특정 테스트를 실행합니다. 정규 표현식은 Python 정규식이어야 합니다.
# tempest run --regex <regex>
예를 들어 다음 예제 명령을 사용하여 tempest.scenario
로 시작하는 이름을 가진 모든 테스트를 실행합니다.
# tempest run --regex ^tempest.scenario
6장. 컨테이너화된 Tempest 실행
이 섹션에서는 언더클라우드의 컨테이너에서 tempest를 실행하는 방법에 대해 설명합니다. 오버클라우드 또는 언더클라우드에 대해 tempest를 실행할 수 있습니다. 컨테이너화된 Tempest에는 컨테이너화되지 않은 템포와 동일한 리소스가 필요합니다.
이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.
6.1. Tempest 컨테이너 준비
tempest 컨테이너를 다운로드하고 구성하려면 다음 단계를 완료합니다.
/home/stack
디렉터리로 변경합니다.$ cd /home/stack
tempest 컨테이너를 다운로드합니다.
$ docker pull registry.redhat.io/rhosp13/openstack-tempest
이 컨테이너에는 모든 Tempest 플러그인이 포함되어 있습니다. 이 컨테이너에서 Tempest 테스트를 전역적으로 실행하면 플러그인에 대한 테스트가 포함됩니다. 예를 들어
tempest run --regex '(*.)'
명령을 실행하면 tempest가 모든 플러그인 테스트를 실행합니다. 배포에 모든 플러그인에 대한 구성이 포함되어 있지 않으면 이러한 Tempest 테스트가 실패합니다.tempest list-plugins
명령을 실행하여 설치된 모든 플러그인을 확인합니다. 테스트를 제외하려면 블랙리스트 파일에서 제외하려는 테스트를 포함해야 합니다. 자세한 내용은 5장. Tempest 사용의 내용을 참조하십시오.호스트 머신과 컨테이너 간의 데이터 교환에 사용할 디렉터리를 만듭니다.
$ mkdir container_tempest tempest_workspace
필요한 파일을
container_tempest
디렉터리에 복사합니다. 이 디렉터리는 컨테이너의 파일 소스입니다.$ cp stackrc overcloudrc tempest-deployer-input.conf container_tempest
사용 가능한 Docker 이미지를 나열합니다.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/rhosp13-beta/openstack-tempest latest 881f7ac24d8f 10 days ago 641 MB
더 쉬운 명령 입력을 위해 별칭을 만듭니다. 디렉터리를 마운트할 때 절대 경로를 사용해야 합니다.
$ alias docker-tempest="docker run -i \ -v "$(pwd)"/container_tempest:/home/stack/container_tempest \ -v "$(pwd)"/tempest_workspace:/home/stack/tempest_workspace \ registry.redhat.io/rhosp13/openstack-tempest \ /bin/bash"
컨테이너에서 사용 가능한 Tempest 플러그인 목록을 가져오려면 다음 명령을 실행합니다.
$ docker-tempest -c "rpm -qa | grep tempest"
6.2. 컨테이너 내부에서 컨테이너화된 Tempest 실행
컨테이너 내에서 실행할 수 있는 tempest 스크립트를 생성하여
tempest.conf
파일을 생성하고 tempest 테스트를 실행합니다. 이 스크립트는 다음 작업을 수행합니다.-
set -e
명령의 종료 상태를 설정합니다. -
오버클라우드에 대해 tempest를 실행하려면
overcloudrc
파일을 소싱합니다. 언더클라우드에 대해 tempest를 실행하려면stackrc
파일을 소싱합니다. -
tempest init
을 실행하여 tempest Workspace를 생성합니다. 호스트에서 파일도 액세스할 수 있도록 공유 디렉터리를 사용합니다. -
디렉토리를
tempest_workspace
로 변경 - 이후 단계에서 쉽게 사용할 수 있도록 TEMPESTCONF 환경 변수를 내보냅니다.
-
discover-tempest-config
를 실행하여tempest.conf
파일을 생성합니다.discover-tempest-config
명령에 포함할 수 있는 옵션에 대한 자세한 내용은discover-tempest-config --help
를 실행합니다. -
호스트 시스템에서
tempest.conf
파일에 액세스할 수 있도록--out
을home/stack/tempest_workspace/tempest.conf
로 설정합니다. -
공유 디렉터리에서
tempest-deployer-input.conf
파일을 가리키도록--deployer-input
.conf를 설정합니다. Tempest 테스트를 실행합니다. 이 예제 스크립트는 스모크 테스트
tempest run --smoke
.$ cat <<'EOF'>> /home/stack/container_tempest/tempest_script.sh set -e source /home/stack/container_tempest/overcloudrc tempest init /home/stack/tempest_workspace pushd /home/stack/tempest_workspace export TEMPESTCONF="/usr/bin/discover-tempest-config" $TEMPESTCONF \ --out /home/stack/tempest_workspace/etc/tempest.conf \ --deployer-input /home/stack/container_tempest/tempest-deployer-input.conf \ --debug \ --create \ object-storage.reseller_admin ResellerAdmin tempest run --smoke EOF
이미
tempest.conf
파일이 있고 tempest 테스트만 실행하려면 스크립트에서TEMPESTCONF
를 생략하고 이를container_tempest
디렉터리의tempest.conf
파일을tempest_workspace/etc
디렉터리로 복사하십시오.
$ cp /home/stack/container_tempest/tempest.conf /home/stack/tempest_workspace/etc/tempest.conf
-
tempest_script.sh
스크립트에 실행 가능한 권한을 설정합니다.$ chmod +x container_tempest/tempest_script.sh
이전 단계에서 생성한 별칭을 사용하여 컨테이너에서 tempest 스크립트를 실행합니다.
$ docker-tempest -c 'set -e; /home/stack/container_tempest/tempest_script.sh'
-
테스트 결과에 대한 정보는
.stestr
디렉토리를 검사합니다. tempest 테스트를 다시 실행하려면 먼저 tempest 작업 영역을 제거하고 다시 생성해야 합니다.
$ sudo rm -rf /home/stack/tempest_workspace $ mkdir /home/stack/tempest_workspace
6.3. 컨테이너 외부에서 컨테이너화된 Tempest 실행
컨테이너는 tempest.conf
파일을 생성하거나 검색하고 테스트를 실행합니다. 컨테이너 외부에서 다음 작업을 수행할 수 있습니다.
오버클라우드에 대해 tempest를 실행하려면
overcloudrc
파일을 소싱합니다. 언더클라우드에 대해 tempest를 실행하려면stackrc
파일을 소싱합니다.# source /home/stack/container_tempest/overcloudrc
tempest init
을 실행하여 tempest Workspace를 생성합니다. 호스트에서 파일도 액세스할 수 있도록 공유 디렉터리를 사용합니다.# tempest init /home/stack/tempest_workspace
tempest.conf
파일을 생성합니다.# discover-tempest-config \ --out /home/stack/tempest_workspace/tempest.conf \ --deployer-input /home/stack/container_tempest/tempest-deployer-input-conf \ --debug \ --create \ object-storage.reseller_admin ResellerAdmin
discover-tempest-config
명령에 포함할 수 있는 옵션에 대한 자세한 내용은discover-tempest-config --help
를 실행합니다.tempest 테스트를 실행합니다. 예를 들어 이전 단계에서 생성한 별칭을 사용하여 tempest 스모크 테스트를 실행하려면 다음 명령을 실행합니다.
# docker-tempest -c "tempest run --smoke"
-
테스트 결과에 대한 정보는
.stestr
디렉토리를 검사합니다. tempest 테스트를 다시 실행하려면 먼저 tempest 작업 영역을 제거하고 다시 생성해야 합니다.
$ sudo rm -rf /home/stack/tempest_workspace $ mkdir /home/stack/tempest_workspace
7장. 임시 리소스 정리
Tempest 를
실행한 후 파일, 테스트 프로세스에 생성된 사용자 및 프로젝트를 삭제해야 합니다. 자체 클리닝할 수 있다는 것은 템포의 디자인 원칙 중 하나입니다
.
7.1. 정리 작업 수행
먼저 저장된 상태를 초기화해야 합니다. 이렇게 하면 saved_state.json
파일이 생성되어 정리에서 유지해야 하는 오브젝트를 삭제할 수 없습니다. 일반적으로 tempest 실행 전에 --init-saved-state
를 사용하여 정리를 실행합니다. 그렇지 않은 경우 save_state.json
을 편집하여 정리를 삭제하려는 개체를 제거해야 합니다.
# tempest cleanup --init-saved-state
정리를 실행합니다.
# tempest cleanup
tempest cleanup
명령은 tempest 리소스를 삭제하지만 프로젝트 또는 임시 관리자 계정은 삭제하지 않습니다.
7.2. Dry Run 수행
실제 정리를 실행하기 전에 예행 연습을 수행하는 것이 좋습니다. 예행 연습에서 정리를 통해 삭제할 파일이 나열되지만 파일은 삭제하지 않습니다. 파일은 dry_run.json
파일에 나열됩니다. dry_run.json
파일을 확인하여 정리가 환경에 필요한 파일을 삭제하지 않는지 확인합니다.
# tempest cleanup --dry-run
7.3. Tempest 오브젝트 삭제
다음 명령을 실행하여 tempest 관리자 계정이 아닌 프로젝트를 포함하여 모든 tempest 리소스를 삭제합니다.
# tempest cleanup --delete-tempest-conf-objects