Skip to main content

Paracrine

PyPI version

Paracrine is a system deployment tool. It's based around Mitogen and standard Python packages for features (although, currently there's only the one core package). Current status is essentially, "works for me, probably won't eat your computer", but thoughts and patches are welcomed.

It's designed towards rapid idempotent deploys i.e. a zero-changes deploy should take in the order of a small number of seconds ideally, and so can be used as your application deployment option as well as for system changes, which has the design benefit of you could use it for GitOps-style deploys. Obviously, if you do more changes, it'll take longer, but that's generally less of an issue, but it should still be faster than most other tooling options. It assumes it's got a host system to run from, which probably can be anything that runs Python, but the testing for that so far has been on a Debian laptop.

It's named after Paracrine signaling "a type of cellular communication in which a cell produces a signal to induce changes in nearby cells" which feels pretty accurate for a deployment tool.

Main documentation is at https://palfrey.github.io/paracrine/

Usage

  1. Setup Python. Tested against 3.9+
  2. pip install paracrine
  3. Write a main file describing what you want to setup. integration_test/main.py is a reasonable example. It must call the run function, which takes general arguments, and list of modules to run.
  4. Write an inventory file for the machines this is managing. Current setup assumes they're all the same. integration_test/docker/inventory.yaml is a reasonable example file, but I suggest generating it from whatever you're using to create the servers (e.g. Terraform).
  5. Write a config.yaml. This has a main top-level key of environments with keys below that for each inventory file you've got (integration_test/config.yaml just has one, but in most scenarios you'll have at least a dev and prod setup). What you do below that is up to you, but typically it'll be environment variables and secrets to feed into the main file.
  6. Run python -m paracrine.commands.setup <inventory file> - this will install the minimum python bits so that everything else works.
  7. Dry-run the main file (e.g. python main.py -i ./docker/inventory.yaml), and then add --apply once you're happy with the run.

Limitations

  • All the servers are assumed to be Debian Linux boxes (although Debian-derivatives like Ubuntu should work)
  • Direct SSH access is assumed possible (Mitogen supports jump boxes, but there's no setup for that yet here) with keys, not passwords

Release files for paracrine 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for paracrine 0.2.1
File Size Uploaded
paracrine-0.2.1.tar.gz 48.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paracrine 0.2.1
File Interpreter ABI Platform
paracrine-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 108.3 kB

Release files / paracrine-0.2.1.tar.gz

Download URL paracrine-0.2.1.tar.gz
Size 48.2 kB
Tags Source
SHA-256 checksum
How to use checksums
20a349817822d21d980bc339371c4447714b0a255940f2835e28cdb4bc7a1b5e
BLAKE2b-256 checksum
How to use checksums
72829b24534eeb552006caed77f136e923b25836fd3b3a59985d037b1a766f0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / paracrine-0.2.1-py3-none-any.whl

Download URL paracrine-0.2.1-py3-none-any.whl
Size 60.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72a06a89fb03fb80fcbc1ead29146df7a021f5be6ef9b2892c59a86b4f478705
BLAKE2b-256 checksum
How to use checksums
48cb5ac4374a3d7ac80ab3107bdf9c7b73da1b066418b06fa73c53bcd9c480ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

1 release file

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page