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
-----------------------------------------------------------------------------


참고

좋은 웹페이지 즐겨찾기