Basic 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 ansibleguy-webui
# run
python3 -m ansibleguy-webui
Docker
Images: webui, webui-unprivileged, webui-aws
docker image pull ansible0guy/webui:latest
docker run -d --name ansible-webui --publish 127.0.0.1:8000:8000 ansible0guy/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 ansible0guy/webui:latest
Demo
Check out the demo at: demo.webui.ansibleguy.net
Login: User demo
, Password Ansible1337
Usage
Contribute
Feel free to contribute to this project using pull-requests, issues and discussions!
Testers are also very welcome! Please give feedback
See also: Contributing
Roadmap
-
[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
-
[ ] Multi-Language Support
-
[ ] API
-
[x] Manage and execute Jobs
-
[ ] Database
-
[ ] Support for MySQL
-
[ ] Testing
-
[ ] Unit Tests
-
[ ] Integration Tests
-
[x] Basic WebUI checks
-
[x] API Endpoints
-
[ ] Permission system
-