ansibleguy/webui

Basic WebUI for using Ansible

ansible
ansible-webui
automation
cronjob-scheduler
django
django-rest-framework
iac
infrastructure-as-code
lightweight
nac
network-as-code
pip
portable
pypi
pypi-package
python3
scheduled-tasks
webapp

Basic WebUI for using Ansible

Buy me a coffee

Documentation Lint Test

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

Documentation


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

  • [x] SAML SSO 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

Stars
96
100.00% more than last month
Forks
7
Open Issues
16