使用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允许脚本化规范与声明性规范一起记录。在
安装
unfurl
在PyPI上可用。您可以使用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-dev
,libcrypt-dev
,openssl-dev
。(注意:如果依赖项的安装失败,请使用-r
重新调用tox
以重新创建测试环境。)
如果您使用asdf
来管理Python的多个版本,请同时安装tox-asdf
:^{
--
之后的参数被传递给测试运行程序,例如,为了运行一个单独的测试:tox -- -p test_runtime.py
。在
入门
查看unforl的其余文档here
- 项目
标签: