aoh

A tool for running Ansible playbooks with `curl <url> | python` commands
git clone https://git.ashermorgan.net/aoh/
Log | Files | Refs | README

commit d4e4f04669b6018283362a847a65809f9339fafe
parent cf136d0eba30761a98aaba2740e3868d7793d9a5
Author: Asher Morgan <asher@ashermorgan.net>
Date:   Sun,  1 Nov 2026 07:40:45 -0800

Update README.md

Diffstat:
MREADME.md | 7++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -20,7 +20,7 @@ installation playbook on new machines, anytime, anywhere. | Client requirements | `python` | `python` | `ansible-pull` | | Ansible controller | Server | Server | Client | | Client has full repository access | No | No | Yes | -| Connection method | Usually SSH | HTTP | Local connection | +| Ansible connection method | Usually SSH | HTTP | Local connection | Note that Ansible controllers don't support Windows, so the `ansible-playbook`, `aoh`, and `ansible-pull` programs all must be run on a Unix-based system. @@ -268,12 +268,16 @@ AoH: - Ensure all Ansible playbooks are trusted and do not contain any potential security holes + - Run the AoH server behind a reverse proxy that enforces HTTPS (and set the `$AOH_ORIGIN` option accordingly) + - Restrict access for each playbook to authorized clients using the `password` playbook option + - Encrypt sensitive variables using Ansible Vault and require clients to supply the decryption password via Ansible's `--ask-vault-pass` option + - If clients are untrusted and an Ansible playbook contains tasks for multiple hosts, create separate entries in the AoH playbooks file for each host with the `host` option set explicitly to prevent hostname spoofing @@ -286,6 +290,7 @@ AoH: variable must not be overridden by, for example, variables in `host_vars/*` files. Refer to Ansible's [variable precedence documentation][ansible-precedence] for more details. + - With the exception of become/connection/vault password prompts, interactive Ansible features are not supported. This includes the `--step` option, the `var_prompts` playbook section, and the `pause` module's `prompt` option.