TaskCat을 사용해 보았습니다.
7151 단어 CloudFormationAWS
TaskCat이란?
GitHub에서
TaskCat is a tool that tests AWS CloudFormation templates. It deploys your AWS CloudFormation template in multiple AWS Regions and generates a report with a pass/fail grade for each region. You can specify the regions and number of Availability Zones you want to inclu test, and pass in parameter values from your AWS CloudFormation template. TaskCat is implemented as a Python class that you import, instantiate, and run.
TestCat was developed by the AWS QuickStart team to test AWS CloudFormation templates that automatically deploy workloads on AWS. We’re pleased to make the tool available to all developers who want to validate their custom AWS CloudFormation templates across
TaskCat은 AWS CloudFormation 템플릿을 테스트하는 도구입니다. 여러 AWS 리전에 AWS CloudFormation 템플릿을 배포하여 각 리전의 합격/불합격 등급 보고서를 생성합니다. 테스트에 포함할 공간과 여유 공간 수를 지정하고 AWS CloudFormation 템플릿에서 파라미터 값을 전달할 수 있습니다. TaskCat은 가져오기, 인스턴스화 및 실행하는 Python 클래스로 구현됩니다.
TestCat은 AWS 빠른 시작 팀에서 개발하여 AWS에 워크로드를 자동으로 배포하는 AWS CloudFormation 템플릿을 테스트합니다. AWS 리전의 사용자 지정 AWS CloudFormation 템플릿을 확인하려는 모든 개발자가 이 도구를 사용할 수 있습니다.
여러 지역에 동일한 템플릿으로 배포할 때 쉽게 테스트할 수 있는 파이썬 도구입니다. AWS는 일반적인 구성과 솔루션별로 QuickStart라는 CloudFormation 템플릿을 제공하지만 원래 TaskCat은 QuickStart 팀이 자신의 템플릿 파일을 테스트하기 위해 개발한 것입니다.
테스트할 CloudFormation 템플릿 파일, 매개변수 파일 및 TaskCat 구성 파일을 입력으로 사용하여 TaskCat을 실행하면 구성 파일에 지정된 리전에 CloudFormation Stack이 생성됩니다.
사용법
TaskCat의 GitHub 리포지토리에 샘플 프로젝트가 있으므로 그 곳을 사용하여 시도하고 싶습니다.
1 TaskCat 설치 및 확인
$ pip install taskcat
$ taskcat
_ _ _
| |_ __ _ ___| | _____ __ _| |_
| __/ _` / __| |/ / __/ _` | __|
| || (_| \__ \ < (_| (_| | |_
\__\__,_|___/_|\_\___\__,_|\__|
version 0.7.19
[INFO ] : A newer version of taskcat is available (0.7.27)
[INFO ] : To upgrade pip version [ pip install --upgrade taskcat]
[INFO ] : To upgrade docker version [ docker pull taskcat/taskcat ]
usage: taskcat [-h] [-c CONFIG_YML] [-P BOTO_PROFILE] [-A AWS_ACCESS_KEY]
2 샘플 프로젝트를 git clone
$ git clone https://github.com/aws-quickstart/taskcat.git
3 파일 확인 (설정 파일)
$ cat taskcat/examples/sample-taskcat-project/ci/taskcat.yml
---
global:
owner: [email protected]
qsname: sample-taskcat-project
s3bucket: <ログ出力用のS3>
regions:
- ap-northeast-1
- ap-northeast-2
- ap-southeast-1
- ap-southeast-2
- eu-central-1
- eu-west-1
- sa-east-1
- us-east-1
- us-west-1
- us-west-2
reporting: true
tests:
taskcat-json:
parameter_input: debug-input.json
regions:
- us-east-1
- ap-northeast-1
template_file: debug.template
test 섹션에서 테스트 시나리오를 설명합니다. 위의 예에서는 CloudFormation 매개 변수를 'debug-input.json'에 설명합니다. 테스트 대상 템플릿 파일은 "debug.template"입니다. 리전은 CloudFormation을 실행할 리전을 지정합니다.
4 파일 확인 (파라미터 파일)
cat taskcat/examples/sample-taskcat-project/ci/debug-input.json
[
{
"ParameterKey": "AvailabilityZones",
"ParameterValue": "$[taskcat_genaz_3]"
},
{
"ParameterKey": "StackName",
"ParameterValue": "TestStack"
},
$[**]는 환경 변수에서 예를 들어 지역에 따라 AZ 구성에 차이가 있지만 이러한 차이를 흡수할 수 있습니다. 자세한 내용은 다음과 같습니다.
htps : // 아 ws - 어려운 cks rt. 기주 b. 이오/인푸 t후우 s. HTML
5 테스트 실행
taskcat -c taskcat/examples/sample-taskcat-project/ci/taskcat.yml
_ _ _
| |_ __ _ ___| | _____ __ _| |_
| __/ _` / __| |/ / __/ _` | __|
| || (_| \__ \ < (_| (_| | |_
\__\__,_|___/_|\_\___\__,_|\__|
version 0.7.19
[INFO ] : A newer version of taskcat is available (0.7.27)
[INFO ] : To upgrade pip version [ pip install --upgrade taskcat]
[INFO ] : To upgrade docker version [ docker pull taskcat/taskcat ]
[taskcat] :AWS AccountNumber: [xxxxxxxxxxx]
[taskcat] :Authenticated via: [environment]
-略-
[INFO ] :All stacks deleted successfully. Deep clean-up not required.
[INFO ] :Retaining assets in s3bucket [***]
실행하면 debug-input.json에 지정된 리전에 CloudFormation 스택이 만들어지고 완료 후 삭제됩니다. -n 옵션을 지정하면 스택이 삭제되지 않고 남아 있습니다.
6 실행 결과 확인
cat taskcat_outputs/tCaT-tag-taskcat-json-517b6132-us-east-1-cfnlogs.txt
-----------------------------------------------------------------------------
Region: us-east-1
StackName: tCaT-tag-taskcat-json-517b6132
*****************************************************************************
ResourceStatusReason:
Stack launch was successful
*****************************************************************************
*****************************************************************************
Events:
ResourceStatus TimeStamp ResourceStatusReason ResourceType LogicalResourceId
------------------ -------------------------------- --------------------------- -------------------------- ------------------------------
CREATE_COMPLETE 2018-11-01 05:35:11.387000+00:00 AWS::CloudFormation::Stack tCaT-tag-taskcat-json-517b6132
CREATE_COMPLETE 2018-11-01 05:35:08.638000+00:00 Custom::GenerateID GetID
CREATE_IN_PROGRESS 2018-11-01 05:35:08.279000+00:00 Resource creation Initiated Custom::GenerateID GetID
CREATE_IN_PROGRESS 2018-11-01 05:35:05.547000+00:00 Custom::GenerateID GetID
CREATE_COMPLETE 2018-11-01 05:35:02.450000+00:00 AWS::Lambda::Function GenID
CREATE_IN_PROGRESS 2018-11-01 05:35:02.153000+00:00 Resource creation Initiated AWS::Lambda::Function GenID
CREATE_IN_PROGRESS 2018-11-01 05:35:01.538000+00:00 AWS::Lambda::Function GenID
CREATE_COMPLETE 2018-11-01 05:34:58.447000+00:00 AWS::IAM::Role LambdaExecutionRole
CREATE_IN_PROGRESS 2018-11-01 05:34:46.150000+00:00 Resource creation Initiated AWS::IAM::Role LambdaExecutionRole
CREATE_IN_PROGRESS 2018-11-01 05:34:45.774000+00:00 AWS::IAM::Role LambdaExecutionRole
CREATE_IN_PROGRESS 2018-11-01 05:34:42.088000+00:00 User Initiated AWS::CloudFormation::Stack tCaT-tag-taskcat-json-517b6132
*****************************************************************************
-----------------------------------------------------------------------------
Tested on: Thursday, 01. November 2018 02:35PM
-----------------------------------------------------------------------------
참고
Reference
이 문제에 관하여(TaskCat을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/atsumjp/items/0b0e24acb55015723fee텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)