Simple WebUI for using Ansible
DISCLAIMER: This is an unofficial community project! Do not confuse it with the vanilla Ansible product!
The goal is to allow users to quickly install & run a WebUI for using Ansible locally.
Keep it simple.
Setup
Local - PIP
Requires Python >=3.10
# install
python3 -m pip install oxl-ansible-webui
# run
oxl-ansible-webui
Docker
Images: ansible-webui, ansible-webui-unprivileged, ansible-webui-mysql, ansible-webui-psql, ansible-webui-aws
We build the image for alpine and debian.
docker image pull oxlorg/ansible-webui:latest
docker run -d --name ansible-webui --publish 127.0.0.1:8000:8000 oxlorg/ansible-webui:latest
# or with persistent data (volumes: /data = storage for logs & DB, /play = ansible playbook base-directory)
docker run -d --name ansible-webui --publish 127.0.0.1:8000:8000 --volume $(pwd)/ansible/data:/data --volume $(pwd)/ansible/play:/play oxlorg/ansible-webui:latest
Optional Dependencies
pip install oxl-ansible-webui[mysql]
pip install oxl-ansible-webui[psql]
pip install oxl-ansible-webui[ara]
pip install oxl-ansible-webui[saml]
Demo
Check out the demo at: demo.ansible-webui.OXL.app
Login: User demo, Password Ansible1337
Usage
See also: oxl-ansible-executor
Contribute
Feel free to contribute to this project using pull-requests, issues and discussions!
What we need:
- Testers and feedback
- More Test-cases
- Translations for your language(s)
See also: Contributing
Roadmap
V1.0
- [x] Refactor WebUI => SvelteJS & TailwindCSS
- [ ] Data-update over Websockets
- [x] Django 5.1
Full
-
[x] Ansible Config
-
[x] Static Playbook-Directory
-
[x] Git Repository support
-
-
[ ] Users
-
[x] Management interface (Django built-in)
-
[x] Groups & Job Permissions
-
[ ] LDAP integration
-
-
[ ] Jobs
-
[x] Execute Ansible using ansible-runner
-
[x] Scheduled execution (Cron-Format)
-
[x] Manual/immediate execution
-
[x] Custom Execution-Forms
-
[ ] Support for ad-hoc commands
-
[ ] Support for Process-Isolation
-
-
[x] Job Logging
-
[x] Write job metadata to database
-
[x] Write full job-logs to Filesystem
-
-
[x] Secret handling (Connect, Become, Vault)
- [x] User-specific job credentials
-
[x] Alerting on Failure
-
[x] E-Mail
-
[x] Support for external Plugins (simple Interface for Scripts)
-
-
-
[ ] WebUI
-
[x] Job Dashboard
Status, Execute, Time of last & next execution, Last run User, Links to Warnings/Errors
-
[x] Job Output
Follow the jobs output in realtime
-
[ ] Job Errors
UI that allows for easy error analysis. Access to logs and provide links to possible solutions
-
[x] Show Ansible Running-Config
-
[x] Show Ansible Collections
- [ ] Check Collections for available updates (Galaxy + GitHub releases)
-
[x] Mobile Support
-
[x] Multi-Language Support
-
-
[ ] API
- [x] Manage and execute Jobs
-
[x] Database
- [x] Support for MySQL
-
[ ] Testing
-
[ ] Unit Tests
-
[ ] Integration Tests
-
[x] WebUI checks
-
[x] API Endpoints
-
[x] Job Execution
-
[ ] Permission system
-
-
License
For dependencies see: attributions