make_ansible_portable Overview

The portable Ansible runtime shipped inside dbbot release packages is built through the make_ansible_portable toolchain. This project is most useful when you want to understand that upstream path or reuse the same portable build outside dbbot.

1. What it solves

The project follows a straightforward approach:

  • Keep the official Ansible runtime code unchanged
  • Install the official package into a directory with pip --target
  • Place a custom launcher in that directory
  • Run it directly with commands such as python3 ./ansible and python3 ./ansible-playbook

Use this project when you want to:

  • build a standalone portable Ansible bundle
  • control the target controller-side Python version and dependency set
  • inject extra Python packages or Ansible collections into the bundle

2. Relationship with dbbot

The portable-ansible runtime shipped inside dbbot releases follows this build direction.

For dbbot users, this project is mainly useful when you want to:

  • understand how the portable runtime is produced
  • rebuild a bundle with your own controller Python, dependency constraints, or size-cutting options

3. Capabilities worth checking

  • --source: choose the official Ansible package version
  • --python: choose the controller-side Python used for the bundle
  • --build-constraint: pin dependency versions for reproducible builds
  • --without-vault: reduce size when ansible-vault is not needed
  • extras / collections injection: add Python dependencies and collections into the bundle