使用Git记录和部署对DevOps基础结构的更改

unfurl的Python项目详细描述


简介

Unfurl是一个与Git一起工作的工具,用于记录和部署对DevOps基础设施的更改。 它跟踪配置更改,保留一个历史记录,精确记录您是如何执行的以及结果是什么,因此您可以轻松地修复或重新创建以后所做的操作。在

unforl与您已经使用的部署工具(如Ansible、Terraform和Helm)集成,将它们的使用组织成一个整体,可共享的抽象,可以方便地迁移到新环境,以及共享和重用您的工作。在

设计

  • Next level GitOps:配置和操作状态都存储在git中
  • Configuration tool不可知,内置对Ansible和Terraform的支持
  • ^{/str>保密,因此可以安全地将密钥公开给管理器
  • 无服务器,无代理:简单、独立的CLI,既可以用作客户机上的开发工具,也可以用于服务器上的自动化生产部署
  • Dependency management:跨基础结构层和边界轻松跟踪依赖关系和更改。在
  • Zero安装:使用客户端容器支持来引导和自动化安装要求。在

目标

  • Hermetic:跟踪环境和部署构件的确切版本
  • reproductable:密封的构建+git+锁定的、不可变的基础设施=再现性
  • Incremental:只应用必要的更改
  • Fast:以上三者结合在一起可以简化快速更新

特点

  • 编写并记录在一个简单的YAML词汇表中的规范、实例状态和更改历史记录。在
  • 或者使用TOSCA's(云应用程序的拓扑和编排规范)YAML词汇表来获得更仔细类型的规范。在
  • 友好的配置编辑器:
    • 注释、顺序和空白被保留。在
    • YAML的语法宏为重用提供了通用的工具,避免了冗长的、冗长的、冗长的代码
  • 基于路径的查询DSL来表示资源和配置之间的动态关系
  • Ansible兼容Jinja2模板
  • 记录更改的历史记录并将其提交到Git存储库。在
  • 动态配置API允许脚本化规范与声明性规范一起记录。在

安装

unfurlPyPI上可用。您可以使用pip安装:

pip install unfurl

默认情况下,unfurl创建一个虚拟Python环境来运行,因此它只安装运行命令行所需的最低要求。如果要使用系统Python运行,请使用“full”选项安装:

pip install unfurl[full]

要求

Linux或MacOs

Python(2.7、3.7、3.8或3.9);git

可选:docker

如果需要,unforl将下载并安装以下内容的本地副本:Ansible、Terraform、gCloud、Supervisor、Helm和asdf。在

发展中

克隆https://github.com/onecommons/unfurl

要生成文档:请运行tox -e docs。在

要生成分发包运行:

python setup.py sdist bdist_wheel

现在可以使用pip安装此软件包,例如:

pip install ./dist/unfurl-0.0.1.dev183-py2.py3-none-any.whl

运行单元测试

您可以使用tox在安装了最新源代码的受支持python环境中运行单元测试。 安装toxpip install tox,然后在源根目录下运行tox。要安装依赖项,您可能需要以下操作系统包安装头文件:python-devlibcrypt-devopenssl-dev。(注意:如果依赖项的安装失败,请使用-r重新调用tox以重新创建测试环境。) 如果您使用asdf来管理Python的多个版本,请同时安装tox-asdf:^{ }。在

--之后的参数被传递给测试运行程序,例如,为了运行一个单独的测试:tox -- -p test_runtime.py。在

入门

查看unforl的其余文档here

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

推荐PyPI第三方库


热门话题
java JavaScript:无法解析带有错误标记的json   自定义对象的java ArrayList   java如何将JUnit5源代码导入Eclipse?   java XML格式不正确   java mysql cpanel netbeans远程连接   使用java中的正则表达式跨文本中的多行进行字符串匹配   java从控制台禁用freemarker日志   java将ReadableDuration添加到ReadableInstant   java Fit JavaFX WebView浏览器内容到窗口   java Hibernate可连接多个类型   由于BeanCreationException,在Spring中使用CDI注入java属性失败   macos如何将命令行参数传递给使用open命令运行的程序?   JAVAlang.NoSuchFieldError:原型Struts2。5.   java如何实现getClassLoader()的等效功能。Eclipse插件中的getResources()?   java访问类内ArrayList的变量   java Spring MVC、JSON、字符串字段的错误序列化,长度超过1000个字符   utf 8如何在java中将文本内容规范化为utf 8   java对话中未捕获空指针异常   带CXF的java Web服务:如何使用ResponseWrapper?