管理应用程序选项

shaper的Python项目详细描述


成型器

Latest versionLicenseTotal alertsLanguage grade: PythoncodecovBuild Status

用于从少数模板/源渲染配置的工具。

开始

这些说明将为您在本地计算机上启动和运行项目的副本,以便进行开发和测试。有关如何在实时系统上部署项目的说明,请参阅部署。

安装

通过pypi:安装

pip install shaper

用例

Shaper的目标-使用模板、DSL和CMDB简化配置管理。

< H4>步骤1 -将现有的项目配置转换为DSL
cd myproject
shaper read

我们将使用项目配置的dsl获取out.yml文件

out.yml

my-backend:src:main:resources:application-dev1.properties:spring.cache.type:'redis'spring.redis.host:'dev1.111111.0001.use1.cache.amazonaws.com'spring.redis.port:'6379'spring.redis.ssl:'false'spring.redis.ttl.minutes:'30'spring.redis.database:'0'spring.redis.available:'true'app.init.enabled:'true'app.email.support_address:'support@my-domain.com'app.email.default_from:'no-replay@my-domain.com'app.lock.provider:'redis'application-qa1.properties:spring.cache.type:'redis'spring.redis.host:dev1.111111.0001.use1.cache.amazonaws.comspring.redis.port:'6379'spring.redis.ssl:'false'spring.redis.ttl.minutes:'30'spring.redis.database:'0'spring.redis.available:'true'app.init.enabled:'true'app.email.support_address:'support@my-domain.com'app.email.default_from:'no-replay@my-domain.com'app.lock.provider:'redis'application-prod1.properties:spring.cache.type:'redis'spring.redis.host:dev1.111111.0001.use1.cache.amazonaws.comspring.redis.port:'6379'spring.redis.ssl:'false'spring.redis.ttl.minutes:'30'spring.redis.database:'0'spring.redis.available:'true'app.init.enabled:'true'app.email.support_address:'support@my-domain.com'app.email.default_from:'no-replay@my-domain.com'app.lock.provider:'redis'application.properties:app.init.enabled:'true'

步骤2-用yaml锚/别名组合公共参数

使用yaml规范,让我们用锚/别名重写复制数据

out重构.yml

mappings.yml:redis:-host:&redis_dev_host'dev.111111.0001.use1.cache.amazonaws.com'db:dev1:&redis_dev1_dbname0qa1:&redis_qa1_dbname1-host:&redis_prod_host'prod.0000000.0001.use1.cache.amazonaws.com'db:prod1:&redis_prod1_dbname0common_properties:&common_propertiesspring.cache.type:'redis'spring.redis.port:'6379'spring.redis.ssl:'false'spring.redis.ttl.minutes:'30'spring.redis.available:'true'app.init.enabled:'true'app.email.support_address:'support@my-domain.com'app.email.default_from:'no-replay@my-domain.com'app.lock.provider:'redis'my-backend:src:main:resources:application-dev1.properties:<<:*common_propertiesspring.redis.host:*redis_dev_hostspring.redis.database:*redis_dev1_dbnameapplication-qa1.properties:<<:*common_propertiesspring.redis.host:*redis_dev_hostspring.redis.database:*redis_qa1_dbnameapplication-prod1.properties:<<:*common_propertiesspring.redis.host:*redis_prod_hostspring.redis.database:*redis_prod1_dbnameapplication.properties:app.init.enabled:'true'

这个数据结构在加载后相当于previus版本,但是在没有重复参数的情况下看起来更漂亮。

步骤3-从CMDB写入属性
shaper write out_refactored.yml

第4步-享受

检查DIFF与现有配置,修复错误,并嵌入到CD管道中。

运行测试

我们正在用毒物测试所有步骤。只需在项目存储库中运行它。所有合并都在travis中运行测试。

tox

贡献

如果你想为一个项目做贡献,使它更好,你的帮助是非常受欢迎的。贡献也是了解github上的社会编码、新技术及其生态系统,以及如何生成建设性的、有用的bug报告、功能请求和所有贡献中最崇高的贡献(一个好的、干净的pull请求)的一个好方法。

如何发出干净的拉取请求

查找项目的贡献说明。如果有的话,跟着他们。

  • 在github(howto)上创建项目的个人分支。
  • 克隆本地计算机上的分叉。您在github上的远程repo称为origin
  • 将原始存储库添加为名为upstream的远程存储库。
  • 如果您刚才创建了fork,请确保将上游更改拉入本地存储库。
  • 创建一个新的分支!如果存在,则从^ {CD4}}分支,否则从^ {CD5> }。
  • 实现/修复你的特性,评论你的代码。
  • 遵循项目的代码样式,包括缩进。
  • 如果项目有测试运行它们!
  • 根据需要编写或修改测试。
  • 根据需要添加或更改文档。
  • 使用git的interactive rebase将提交压缩为单个提交。必要时创建新分支。
  • 将分支推到github上的fork上,即远程origin
  • 在正确的分支中打开一个拉请求。目标是项目的develop分支如果有,那么就选择master
  • 如果维护者请求进一步的更改,只需将它们推送到您的分支。PR将自动更新。
  • 一旦请求被批准并合并,您就可以将更改从upstream拉到本地repo并删除 你的额外分支。

最后但并非最不重要的是:始终用现在时编写提交消息。提交消息应该描述提交在应用时对代码所做的操作,而不是对代码所做的操作。

版本控制

我们使用versioneer进行版本控制。有关可用的版本,请参见tags on this repository

作者

另请参阅参与此项目的contributors列表。

许可证

此项目在Apache2.0下获得许可-有关详细信息,请参见LICENSE文件

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

推荐PyPI第三方库


热门话题
用Java学习Eclipse可视化编辑器Swing   eclipse如何找到运行Java程序所需的时间?   JAVA用于在Tomcat 8上运行Jena API的lang.UnsupportedClassVersionError   java在Main中调用字符串方法   javascript“子进程”。exec无法运行Java函数   java如何使用Gmail API获取电子邮件正文内容   java为什么客户端看不到服务器发送的第一条消息?   java无法在安卓 WebView中滚动到顶部   从服务器运行web服务时,java代码中的日期为空   从子任务返回后执行后台任务时发生java错误   java无法一致地处理弹出窗口   java(Android)通过蓝牙向µ控制器发送字节   java无法在emulator中启动AVD?安卓工作室   Android Java应用程序正在冻结,没有返回错误消息   java如何使用TestNg记录测试历史?