跳转到主要内容

用于自动化多主机、多环境软件构建和部署的工具。

项目描述

batou帮助您自动化应用程序部署

  • 您使用简单的但功能强大的Python API创建部署模型。
  • 您配置模型如何应用于不同环境中的主机。
  • 您使用batou工具验证和运行部署。

开始新项目很容易

mkdir myproject
cd myproject
git init
curl -sL https://raw.githubusercontent.com/flyingcircusio/batou/main/bootstrap | sh
git commit -m "Start a batou project."

这是一个最小化的应用程序模型

$ mkdir -p components/myapp
$ cat > components/myapp/component.py
from batou.component import Component
from batou.lib.python import VirtualEnv, Package
from batou.lib.supervisor import Program

class MyApp(Component):

    def configure(self):
        venv = VirtualEnv('2.7')
        self += venv
        venv += Package('myapp')
        self += Program('myapp',
            command='bin/myapp')

这是一个最小化的环境

$ mkdir environments
$ cat > environments/dev/environment.cfg
[environment]
connect_method = local

[hosts]
localhost = myapp

要部署此软件,您需要运行

$ ./batou deploy dev

查看详细文档以开始更宏大的项目。

功能

  • 将应用程序模型与环境分离
  • 支持幂等操作,适用于增量部署
  • 同时部署到多个主机
  • 自动解决多主机场景下的依赖关系
  • 对您的应用程序没有运行时要求
  • 带有多级访问权限的加密密钥:存储您的SSL证书、SSH密钥、服务密钥等,以实现一键式部署。
  • 部署到本地计算机、Vagrant或任何SSH主机
  • 通过execnet使用OpenSSH提供的广泛SSH功能支持
  • 在远程主机上仅需要很少的依赖项
  • 附带一组组件,用于常规任务
  • 自启动和自更新 - 无需额外的脚本

许可证

该项目采用2条款BSD许可协议。

黑客攻击

  • 确保已安装mercurialsubversion并在$PATH中。
  • 运行./develop.sh以创建一个本地虚拟环境,并设置好一切。
  • 使用bin/tox运行测试套件
  • 使用cd doc; make构建文档
  • 使用export GNUPGHOME=<BATOU此处目录>/src/batou/secrets/tests/fixture/gnupg设置GPG以用于示例
  • 确保已安装age并在$PATH中,以便支持age加密。

变更日志

查看CHANGES.md

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

batou-2.5.0.tar.gz (191.9 kB 查看哈希值)

上传时间 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面