自动地形审查

tf-cop的Python项目详细描述


TerraForm自动审阅器

地形脚本检查器。
此软件包可帮助您查看tf脚本。
(例如:确认向所有S3存储桶添加日志记录规则)

1安装

$ pip install tf_cop

2用法

2.1 cli使用

在您的控制台

$ tfcop TERRAFORM_ROOT_PATH REVIEW_BOOK_ROOT_PATH(optional)

样本输出

☁  tf_cop [master] ⚡ tfcop test[INFO] tf_root_path     : test[INFO] rbook_root_path  :

==========================================================
RESOURCE AWS_S3_BUCKET.TEST_TF_REVIEW_BUCKET
==========================================================[WARN]  desc_checker    : description not use
[ALERT] tag_checker     : tags not use==========================================================
RESOURCE AWS_S3_BUCKET.TEST_TF_REVIEW_BUCKET2
==========================================================[WARN]  desc_checker    : description not use
[PASS]  tag_checker     : passed
[PASS]  name_checker    : passed
[PASS]  env_checker     : passed==========================================================
DATA AWS_S3_BUCKET.TEST_DATA_TF_REVIEW_BUCKET
==========================================================[PASS]  bucket_checker  : passed=======================| RESOURCE NUM  : 3|| warn NUM      : 2|| alert NUM     : 1|| pass NUM      : 4|=======================

2.2模块使用

2.2.1进行回顾

通过terraform root path&;review_book root path

importtf_copif__name__=='__main__':test=tf_cop.TfCop()test.tf_review("./test","./review_book_default")

2.2.2获取输出

output=test.output(color_flg=True)print(output)

3查看书本yaml规则

3.1文件名规则

review_book_yaml=resource_name.split("_")[1]+'.yaml'

(例如aws_s3_bucket=>;s3.yaml)

文件夹结构

${REVIEW_BOOK_ROOT_PATH}
├── data
│   ├──s3.yaml
│   └──...
└── resource
    ├── acm.yaml
    ├── api.yaml
    └── ...

3.2关键规则

keydescriptionrequired
titletest titlerequired
descdescription for testoption
modetest mode (existance|value|nested)required
keytest target key (ex. tags)required
valuecorrect value regexoption
nestfor nested testoption
typetest type (ex. alert, warn)required

3.2.1生存试验< /H4>

检查目标键是否存在。< BR/> (例如描述)

3.2.2值测试

检查目标值是否正确。
(例如name=“(prd stg dev)-s3-.*-地形”)

3.2.3嵌套测试

测试嵌套键值

tags {
    Name = "${terraform.env}-tf-review-bucket"
    Env = "dev"
}

3.3样品

aws_s3_bucket:-title:description_checkerdescription:simple existance checkermode:existancewarn:Truekey:description-title:private_checkerdescription:simple value checkermode:valuekey:aclvalue:private-title:bucket_checkerdescription:simple value regex checkermode:valuekey:bucketvalue:.*-tf-review-bucket.*-title:tag_checkerdescription:nested value checkermode:nestedkey:tagsnest:-title:name_checkerdescription:nested value checkermode:valuekey:Namevalue:.*-tf-review-bucket.*-title:env_checkerdescription:nested value checkermode:valuewarn:Truekey:Envvalue:(dev|stg|prd)-title:if_checkermode:ifkey:loggingnest:title:name_checkermode:existancekey:lifecycle_rule

4测试

python test.py

5示例用法

使用docker测试terraform文件。

├── Dockerfile
├── main.py
└── requirements.txt
FROM python:3.6RUN apt-get update
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools

WORKDIR /tmpCOPY requirements.txt ./
RUN pip install -r requirements.txt

COPY . .

CMD["python","main.py"]
importtf_copif__name__=='__main__':test=tf_cop.TfCop()test.tf_review("./terraform","./review_book")output=test.output(color_flg=True)print(output)

设置TF_ROOT_PATH&;REVIEW_BOOK_PATH

docker build -t tf_cop .
docker run \
      -v `pwd`/${TF_ROOT_PATH}:/tmp/terraform \
      -v `pwd`/${REVIEW_BOOK_PATH}:/tmp/review_book \
      tf_cop

6作者

ys tydy

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应