Fabric-based software provisioning tool
Project description
Carnival
Software provisioning tool, built on top of Fabric
Also carnival contrib package available.
- Runs on MacOs and Linux
- Tested on Ubuntu and CentOS
Install
$ pip3 install carnival
$ pip3 install carnival_contrib # Optional community receipts
Docs
Documentation available at readthedocs.org
Cli
Usage
$ carnival --help
Usage: carnival [OPTIONS] [deploy_frontend|deploy_backend]...
Options:
-d, --dry_run Simulate run
--debug Turn on debug mode
--help Show this message and exit.
Competion
- for Bash: place
eval "$(_CARNIVAL_COMPLETE=source carnival)"
in .bashrc - for ZSH: place
eval "$(_CARNIVAL_COMPLETE=source_zsh carnival)"
in .zshrc
Quick example
carnival_file.py
- entry point for carnival cli
Lets create one.
from carnival import Step, Host, Task, cmd
class Deploy(Task):
def run(self):
self.step(
DeployFrontend(),
Host("1.2.3.5", ssh_user="root", can="context", additional="give"),
)
self.step(
DeployFrontend(),
[
Host("root@1.2.3.6", can="give", additional="context"),
Host("root@1.2.3.7", can="context", additional="give"),
]
)
class DeployFrontend(Step):
def run(self, can, additional, **kwargs):
cmd.apt.install_multiple("htop", "nginx")
cmd.systemd.enable("nginx", start_now=True)
class DeployBackend(Step):
def run(self, can, additional, **kwargs):
cmd.apt.install_multiple("htop")
cmd.docker.install_ce_ubuntu()
cmd.docker.install_compose()
Run
$ python3 -m carnival deploy
💃💃💃 Runing ⛏frontend at 🖥 1.2.3.4
...
💃💃💃 Runing ⛏frontend at 🖥 1.2.3.5
...
Develop
Run tests
$ make dev # Run docker containers for testing
$ make test_deps # Install test dependencies
$ make test # run static analyzers and tests
$ make qs # Run static analyzers only
$ make nodev # Stop docker containers
Run carnival from dev env
$ python3 -m carnival --help
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
carnival-1.2.tar.gz
(19.0 kB
view details)
File details
Details for the file carnival-1.2.tar.gz
.
File metadata
- Download URL: carnival-1.2.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bdae611ab6efd9ddeaff531a6ee8982b6f206130dd9d3f59ae50fc043e37905 |
|
MD5 | 7b8f1613a2dc0643d93075211a7431be |
|
BLAKE2b-256 | cee44094c2014a868eb2ddc5a0c195d6feb6c507134afe55234bc40c08dfaf0f |