把你的责任文件整理好

ansible-scribe的Python项目详细描述


Codacy BadgeLicense: MIT

ansible scribe

Ansible Scribe致力于尽可能地实现自动化,以便通过Ansible Galaxy获得一个角色,并准备好与Ansible社区共享。它试图将你推向一个更容易被他人利用的角色,并向你提出一些“最佳实践”的想法:

  1. 你应该使用角色和单独的剧本。这是使代码模块化并可被其他人重用的最佳方法。
  2. 您应该设置合理的默认变量,以便任何人都可以使用您的角色而无需更改变量,并且它仍将成功运行。这意味着ansible scribe将检查丢失和空变量。
  3. 您应该定义一个许可文件。
  4. 您应该使用ci测试,以便它检查ci文件。
  5. 您应该为所有任务使用名称,因为这有助于其他人(包括在ansible方面没有经验的人)理解您的代码。

这就是说,责任抄写员并不是只想跑和被完成。它尽可能多地创建必要的文档,但它不会做所有事情。您至少需要填写变量表。您可能还必须:

  1. 如果您没有提供任务名称列表,请将其转换为连贯的描述(它将在自述文件中的列表中写入任务名称,以便您可以创建一个)。
  2. 填写readme.md和meta/main.yml文件中任何其他空的或不完整的部分。如果你不预先给出所有必要的信息,这些将存在。ansible scribe不会为您创建值,在这种情况下,它只会创建这些部分的骨架。
  3. 为defaults/main.yml中的空默认变量分配设置(如果有)。

Ansible Scribe没有:

  • 编写代码
  • 格式化代码
  • 警告:
    • 不推荐使用的代码
    • 使用不正确的模块
<> P>其他的工具存在于这些事物中,而可编辑的抄写者遵循UNIX哲学,做一件事并做好它。我的目标是扮演你所拥有的角色,让他们尽可能容易地做好准备,以尽快推进到ansible星系。

设置内容来自:(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

给它一个角色:

  1. 读取所有变量并在自述文件中为它们创建一个表。

    VariablePurposeDefault
    apache_portdefines port for apache to listen on80
    testa variable for testingnone
  2. 确保所有变量都在defaults/main.yml文件中

  3. 获取任务名称并将其设置在readme.md文件中的列表中,以便为您提供构建的框架

  4. 阅读行动手册以便

  5. 将示例剧本的副本添加到自述文件中

  6. 查找任何具有namespace.rolename设置的角色(添加到依赖项中)

  7. 如果缺少CI文件或CI文件为空,则发出警告

生成文件:

输出

  1. readme.md
  2. 默认/MIN .YML(如果不存在)
  3. 许可证文件
  4. meta/main.yml
  5. CI文件
  6. 警告:
    1. CI文件:
      1. 未找到-在$ci_file_位置创建了空文件
      2. 找到空文件
    2. 空默认变量
    3. 没有任务名称

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

推荐PyPI第三方库


热门话题
javajavax。艾尔。PropertyNotFoundException:   java为什么通过TCP发送的文件比它本身包含的文件包含更多的数据?   java为什么字符开关/案例不起作用?   php到java连接器,在哪里可以找到好的连接器   需要帮助Java简单规则形状面积计算器和if语句吗   macos如何从newstyle Oracle Java OSX捆绑包结构启动帮助页?   java既然所有的类都扩展对象,而对象是一个类,那么对象如何扩展对象呢?   java从JavaPairdd<String,Tuple2<Integer,Integer>>转换为JavaPairdd<String,Integer>   java微调器值未从一个活动传递到另一个活动   参数化类型的java数组   java不提供类。getCanonicalName是否存在性能问题?   java输入键JTextField   为什么我不能在java中调用nextLine()方法两次?   JTextPane中的java JProgressBar   java如何获取Crudepository实例?   用于提取几个<div>标记的java正则表达式   java如何使用JUnit Testrunner生成html图像   Go中Java静态属性的等价性