Description
pypyr is an open source task-runner for automation pipelines. pypyr lets you script sequential tasks in a simple yaml format with conditional execution, loops, error handling and retries for any step in your pipeline.
Like a turbo-charged shell script, but less finicky. Less tricky than a makefile.
You can run loops, conditionally execute steps based on conditions you specify, wait for status changes before continuing, break on failure conditions or swallow errors.
Pretty useful for orchestrating continuous integration, continuous deployment (CI/CD) and devops operations.
pypyr runs as a simple CLI, or you can use it from your own code via the undemanding Python API.
pypyr automation task runner alternatives and similar packages
Based on the "DevOps Tools" category.
Alternatively, view pypyr automation task runner alternatives based on common mentions on social networks and blogs.
-
Ansible
Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com. -
Docker Compose
Define and run multi-container applications with Docker -
letsencrypt
Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol. -
SaltStack
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here: -
Fabric
Simple, Pythonic remote execution and deployment. -
psutil
Cross-platform lib for process and system monitoring in Python -
supervisor
Supervisor process control system for Unix (supervisord) -
BorgBackup
Deduplicating archiver with compression and authenticated encryption. -
cloudinit
Official upstream for the cloud-init: cloud instance initialization -
pexpect
A Python module for controlling interactive programs in a pseudo-terminal -
pyinfra
pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more. -
honcho
Honcho: a python clone of Foreman. For managing Procfile-based applications. -
Automatron
Infrastructure monitoring framework turning DevOps runbooks into automated actions -
Cloud-Init
unofficial mirror of Ubuntu's cloud-init -
ATW (AWS Tool Web)
Amazon AWS Web Tool (view only) -
riffdog
Riffdog Terraform scanner - finding 'things' in the Real World (aka AWS) which Terraform didn't put there. -
OpenStack
Open source software for building private and public clouds.
Write Clean Python Code. Always.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of pypyr automation task runner or a related project?
README
pypyr automation task runner
All documentation is here: https://pypyr.io/
pypyr
pronounce how you like, but I generally say piper as in "piping down the valleys wild"
pypyr is a free & open-source task-runner that lets you define and run sequential steps in a pipeline.
Like a turbo-charged shell script, but less finicky. Less annoying than a makefile.
pypyr runs pipelines defined in yaml. A pipeline is pretty much anything you want to automate with a sequence of steps.
Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
You can run loops, conditionally execute steps based on conditions you specify, wait for status changes before continuing, break on failure conditions or swallow errors. Pretty useful for orchestrating continuous integration, continuous deployment & devops operations.
pypyr gives you simple variable substitution & configuration file management so you can read, merge and write configuration files to and from yaml, json or just text.
Installation
$ pip install --upgrade pypyr
Tested against Python >=3.7
pypyr runs on Linux, MacOS & Windows. pypyr also runs fine on CI servers & containers - pretty much anywhere with a Python run-time will work.
Usage
This is a pipeline
Example pipeline that runs a sequence of steps and takes an optional custom cli input argument:
# ./show-me-what-you-got.yaml
context_parser: pypyr.parser.keyvaluepairs
steps:
- name: pypyr.steps.echo
in:
echoMe: o hai!
- name: pypyr.steps.cmd
in:
cmd: echo any cmd you like
- name: pypyr.steps.shell
in:
cmd: echo ninja shell power | grep '^ninja.*r$'
- name: pypyr.steps.py
in:
py: print('any python you like')
- name: pypyr.steps.cmd
while:
max: 3
in:
cmd: echo gimme a {whileCounter}
- name: pypyr.steps.cmd
foreach: [once, twice, thrice]
in:
cmd: echo say {i}
- name: pypyr.steps.default
in:
defaults:
sayBye: False
- name: pypyr.steps.echo
run: '{sayBye}'
in:
echoMe: k bye!
This is how you run a pipeline
This is what happens when you run this pipeline:
$ pypyr show-me-what-you-got
o hai!
any cmd you like
ninja shell power
any python you like
gimme a 1
gimme a 2
gimme a 3
say once
say twice
say thrice
$ pypyr show-me-what-you-got sayBye=true
o hai!
any cmd you like
ninja shell power
any python you like
gimme a 1
gimme a 2
gimme a 3
say once
say twice
say thrice
k bye!
Help!
Don't Panic! Check the pypyr technical docs to begin. For help, community & talk, check pypyr twitter, or join the chat at the pypyr community discussion forum!
Contribute
Developers
For information on how to help with pypyr, run tests and coverage, please do check out the [contribution guide](CONTRIBUTING.md).
Bugs
Well, you know. No one's perfect. Feel free to create an issue.
License
pypyr is free & open-source software distributed under the Apache 2.0 License.
Please see [LICENSE file](LICENSE) in the root of the repo..
Copyright 2017 the pypyr contributors.
*Note that all licence references and agreements mentioned in the pypyr automation task runner README section above
are relevant to that project's source code only.