All Projects → flyingcircusio → batou

flyingcircusio / batou

Licence: other
batou is a universal, fractal deployment utility using Python.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to batou

Bk Ci
蓝鲸CI平台(BlueKing CI)
Stars: ✭ 1,758 (+4651.35%)
Mutual labels:  continous-deployment, continous-delivery
cd-manifesto
Minimum Viable Continuous Delivery
Stars: ✭ 116 (+213.51%)
Mutual labels:  continous-deployment, continous-delivery
running-redmine-on-puma
running redmine on puma installation tutorial (Ubuntu/MySQL)
Stars: ✭ 20 (-45.95%)
Mutual labels:  deployment
terraform-module-icp-deploy
This Terraform module can be used to deploy IBM Cloud Private on any supported infrastructure vendor. Tested on Ubuntu 16.04 and RHEL 7 on SoftLayer, VMware, AWS and Azure.
Stars: ✭ 13 (-64.86%)
Mutual labels:  deployment
WOA-Deployer
WOA Deployer
Stars: ✭ 77 (+108.11%)
Mutual labels:  deployment
django-quick-start
Deploy a Django app on Render
Stars: ✭ 17 (-54.05%)
Mutual labels:  deployment
wimpy.deploy
Ansible role to automate immutable infrastructure scheduling one docker container on one EC2 instance
Stars: ✭ 21 (-43.24%)
Mutual labels:  deployment
fabalicious
is now deprecated and not supported anymore, use https://github.com/factorial-io/phabalicious instead
Stars: ✭ 14 (-62.16%)
Mutual labels:  deployment
evolution
Evolution process of The Falco Project
Stars: ✭ 37 (+0%)
Mutual labels:  deployment
mini-qml
Minimal Qt deployment for Linux, Windows, macOS and WebAssembly.
Stars: ✭ 44 (+18.92%)
Mutual labels:  deployment
Docker-Templates
Docker configurations for TheHive, Cortex and 3rd party tools
Stars: ✭ 71 (+91.89%)
Mutual labels:  deployment
ci-docker-image
A Docker Image meant for use with CI/CD pipelines
Stars: ✭ 23 (-37.84%)
Mutual labels:  deployment
draughtsman
An in-cluster agent that handles Helm based deployments
Stars: ✭ 31 (-16.22%)
Mutual labels:  deployment
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (-29.73%)
Mutual labels:  deployment
docker-wordmove
Docker image to run Wordmove
Stars: ✭ 16 (-56.76%)
Mutual labels:  deployment
deployer-php-action
Deploy PHP projects using Deployer from Github Actions
Stars: ✭ 57 (+54.05%)
Mutual labels:  deployment
serverless-model-aws
Deploy any Machine Learning model serverless in AWS.
Stars: ✭ 19 (-48.65%)
Mutual labels:  deployment
AutoDeploy
AutoDeploy is a single configuration deployment library
Stars: ✭ 43 (+16.22%)
Mutual labels:  deployment
Deploy-machine-learning-model
Dockerize and deploy machine learning model as REST API using Flask
Stars: ✭ 61 (+64.86%)
Mutual labels:  deployment
Cloud-PAW-Management
Simplify PAW and SPA for the masses, unify the MS Internal, and public PAW specs, and expedite deployment to ~5min or less.
Stars: ✭ 45 (+21.62%)
Mutual labels:  deployment

batou helps you to automate your application deployments:

  • You create a model of your deployment using a simple but powerful Python API.
  • You configure how the model applies to hosts in different environments.
  • You verify and run the deployment with the batou utility.

Getting started with a new project is easy:

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

Here's a minimal application model:

$ 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')

And here's a minimal environment:

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

[hosts]
localhost = myapp

To deploy this, you run:

$ ./batou deploy dev

Check the detailed documentation to get going with a more ambitious project.

Features

  • Separate your application model from environments
  • Supports idempotent operation for incremental deployments
  • Deploy to multiple hosts simultaneously
  • Automated dependency resolution for multi-host scenarios
  • No runtime requirements on your application
  • Encrypted secrets with multiple access levels: store your SSL certificates, SSH keys, service secrets and more to get true 1-button deployments.
  • Deploy to local machines, Vagrant, or any SSH host
  • Broad SSH feature support by using OpenSSH through execnet
  • Only few dependencies required on the remote host
  • Ships with a library of components for regularly needed tasks
  • self-bootstrapping and self-updating - no additional scripting needed

License

The project is licensed under the 2-clause BSD license.

Hacking

  • Make sure mercurial and subversion are installed and in $PATH.
  • Run ./develop.sh to create a local virtualenv with everything set up.
  • Run the test suite using: bin/tox
  • Build the documentation using: cd doc; make

Changelog

See CHANGES.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].