3个版本

0.1.2 2022年1月18日
0.1.1 2021年12月15日
0.1.0 2021年12月9日

#7 in #repos

MIT 许可证

24KB
506

Deployah

Deployah是一个在特定环境中部署软件系统的工具

  • 该系统由多个仓库组成
    • 这些仓库使用git版本控制系统
    • 在源代码级别上相互独立
    • 但作为系统协同工作
  • 该系统运行在Linux上
    • 需要访问硬件
    • 不使用容器
  • 系统需要在目标硬件上测试
  • 系统偶尔也会在目标硬件上开发

工作流程

Deployah旨在简化您上述特定情况下的生活。

它从目标机器上的新deployah目录开始,该目录本身可以通过git或类似工具进行版本控制。

mkdir myprojectdeployment

Deployah使用deploay.toml文件来控制您的部署。

您可以使用命令:deployah init创建一个。

这将创建一个包含以下内容的文件

title = ""
name = ""

现在您可以手动设置deployah文件标题和项目名称。或者,您也可以使用上面的命令带标志:deployah init --title="文件标题" --name="项目名称"

现在您可以添加一个仓库:deployah add

这将更改文件为

title = "file title"
name = "project name"

[[repos]]
name = ""
url = ""
branch = ""

再次,您可以手动设置值或使用带标志的命令。最简单的方法可能是使用initadd设置文件,然后手动修改文件。

您可以将[[repos]]部分复制粘贴以添加更多仓库。 name是仓库将被克隆到的目录名称,url是git仓库地址(您可以从GitLabs的Clone按钮中获取)和branch是您想要的分支。

一旦设置好您的deployah.toml,您可以通过运行deployah update获取所有仓库。相同的命令将更新您的仓库,通过获取最新更改并检出您更改的分支。

如果您想删除一切,deployah purge将删除所有仓库,在询问您是否确实确定之后。该命令尚未了解未提交的更改和脏工作树 - 所以要小心!

一个尚未实现但计划中的功能是命令 deployah installah - 此命令将使用尚未发明的 installah 工具,根据它们的根目录中的 installah.toml 文件安装所有仓库。Installah 不会是构建和安装工具本身,而是使用项目基于的任何构建系统。它将只提供一个统一的接口,并添加一些常见缺失的功能,例如服务文件位置和服务重载。

Installah 的未来版本也不会将软件安装到实际系统根目录中,而是在部署目录中创建一个根树,然后使用 overlayfs 或 fusefs 与实际系统根目录集成。

安装

  • curl --proto '=https' --tlsv1.2 -sSfhttps://sh.rustup.rs | sh
  • sudoapt install libssl-dev git
  • curl -sSLhttps://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
  • cargoinstall deployah

依赖项

~3.5–4.5MB
~82K SLoC