把你的责任文件整理好
ansible-scribe的Python项目详细描述
ansible scribe
Ansible Scribe致力于尽可能地实现自动化,以便通过Ansible Galaxy获得一个角色,并准备好与Ansible社区共享。它试图将你推向一个更容易被他人利用的角色,并向你提出一些“最佳实践”的想法:
- 你应该使用角色和单独的剧本。这是使代码模块化并可被其他人重用的最佳方法。
- 您应该设置合理的默认变量,以便任何人都可以使用您的角色而无需更改变量,并且它仍将成功运行。这意味着ansible scribe将检查丢失和空变量。
- 您应该定义一个许可文件。
- 您应该使用ci测试,以便它检查ci文件。
- 您应该为所有任务使用名称,因为这有助于其他人(包括在ansible方面没有经验的人)理解您的代码。
这就是说,责任抄写员并不是只想跑和被完成。它尽可能多地创建必要的文档,但它不会做所有事情。您至少需要填写变量表。您可能还必须:
- 如果您没有提供任务名称列表,请将其转换为连贯的描述(它将在自述文件中的列表中写入任务名称,以便您可以创建一个)。
- 填写readme.md和meta/main.yml文件中任何其他空的或不完整的部分。如果你不预先给出所有必要的信息,这些将存在。ansible scribe不会为您创建值,在这种情况下,它只会创建这些部分的骨架。
- 为defaults/main.yml中的空默认变量分配设置(如果有)。
Ansible Scribe没有:
- 编写代码
- 格式化代码
- 警告:
- 不推荐使用的代码
- 使用不正确的模块
设置内容来自:(https://galaxy.ansible.com/docs/contributing/index.html)
输入
配置文件(~/.config/ansible scribe/global.conf)示例:
[Paths]
roles = /etc/ansible/roles/
playbooks = /etc/ansible/playbooks/
output = /tmp/ansible-scribe/
[Metadata]
# License type (currently supported = apache, bsd2, bsd3, cc-by, gpl2, gpl3, isc, mit)
repo_license = mit
author = Sam Oehlert
bio = Security Engineer. email: sam.oehlert@gmail.com
company = My Company
[CI]
# What type of CI file you want to use (currently supported = gitlab, travis)
type = gitlab
特定于角色的配置文件(~/.config/ansible scribe/netdata.conf)示例:
[versions]
ansible_min = 2.0
container_min =
role = 1.0
[urls]
repo = https://github.com/soehlert/ansible-role-netdata
branch = master
issue_tracker =
[config]
description = Sets up the Netdata package for distributed real time performance and health monitoring
requirements = N/A
galaxy_tags = netdata deploy
playbook = common.yml
[platforms]
ubuntu = 16.04, 18.04
给它一个角色:
读取所有变量并在自述文件中为它们创建一个表。
Variable Purpose Default apache_port defines port for apache to listen on 80 test a variable for testing none 确保所有变量都在defaults/main.yml文件中
获取任务名称并将其设置在readme.md文件中的列表中,以便为您提供构建的框架
阅读行动手册以便
将示例剧本的副本添加到自述文件中
查找任何具有namespace.rolename设置的角色(添加到依赖项中)
如果缺少CI文件或CI文件为空,则发出警告
生成文件:
- 使角色在角色路径之外的默认文件位置创建文件
- 使覆盖在角色路径中创建文件
- make install创建空配置文件
- 为每个角色生成文件动态目标(https://stackoverflow.com/questions/22754778/dynamic-makefile-target)
输出
- readme.md
- 默认/MIN .YML(如果不存在)
- 许可证文件
- meta/main.yml
- CI文件
- 警告:
- CI文件:
- 未找到-在$ci_file_位置创建了空文件
- 找到空文件
- 空默认变量
- 没有任务名称
- CI文件: