A lightweight, production-ready Ansible Docker Image built on python:3.13.5-alpine3.22 (plans to update as needed). This image was designed for running playbooks in CI/CD pipelines or local automation tasks.
Powered by Ansible 2.18.6, pre-loaded with common community collections and winrm support for managing Windows nodes.
- Ansible (Gitlab Component)
- StageFreight GitLab Component – GitLab component that provides CI pipeline orchestration for releases
- StageFreight OCI (Docker Image) – A general-purpose DevOps automation image built to accelerate CI/CD pipelines.
- ✅ Based on Python 3.13.5 + Alpine 3.22 for minimal footprint
- 🛠️ Includes:
ansible-core==2.18.6ansible-lint==25.6.1coreutilscurlgitjqopensshopenssh-keygenpywinrmfor Windows managementragersyncsopsyq
- 📦 Pre-installed Ansible collections:
ansible.posixansible.windowscommunity.dockercommunity.sops
- 🔐 Host key checking is disabled via
ANSIBLE_HOST_KEY_CHECKING=falsefor smoother CI/CD use
- Dockerhub:
- Public Image Releases.
- GitLab:
- Official Source, up to date; but 100% uptime can not be guaranteed.
- Github:
- Source is available, (This can get out of sync with Gitlab).
docker run --rm -v $(pwd):/app -w /app prplanit/ansible-oci:latest ansible-playbook playbook.yamldocker run -v ./playbook.yaml:/root/playbook.yaml -v /srv/gitops/ad-arbitorium-private:/srv/gitops/ad-arbitorium-private -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --rm prplanit/ansible-oci:latest ansible-playbook --private-key /root/.ssh/id_rsa -i /srv/gitops/ad-arbitorium-private/ansible/inventory /root/playbook.yaml -e ansible_windows_password=$WINDOWS_ANSIBLE_PASSWORD
ansible-deploy:
stage: deploy
image: prplanit/ansible-oci:latest
script:
- ansible-playbook ansible/deploy.yaml -i ansible/inventoryThis image expects your playbooks and configuration files to live inside the /app directory by default.
Example layout:
/app
├── ansible.cfg
├── inventory
├── playbook.yaml
└── roles/| Variable | Purpose |
|---|---|
ANSIBLE_HOST_KEY_CHECKING |
Disables host key checking (default: false) |
- Keep in mind that pywinrm is included, but for full Windows management, you may need to pass additional credentials or certificates depending on your environment.
- This image does not contain systemd or sshd—it's designed strictly as a control node for executing playbooks, not as a managed host.
By default, the image runs:
ansible-playbook --versionOverride this by providing your own entrypoint or script.
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
Use it freely, deploy wisely, and remember: automation is power, but also responsibility.
This image is provided as-is, without warranties, implied Ansible enlightenment, or protection from weekend-dev-ops rabbit holes. The author assumes no responsibility if your playbook summons demons or accidentally configures your microwave.