Home
Softono
ansible-webui

ansible-webui

Open source Python
85
Stars
4
Forks
34
Issues
2
Watchers
1 week
Last Commit

About ansible-webui

Simple WebUI for using Ansible

Platforms

Web Self-hosted

Languages

Python

Simple WebUI for using Ansible

Support Badge (Donate, Support-Licenses)


Lint Test Frontend Test Backend Unit-Tests Backend Test Job-Execution Test Databases

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.

Tech-Stack

Intro GIF

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

Documentation

Docs Uptime

See also: oxl-ansible-executor


Contribute

Feel free to contribute to this project using pull-requests, issues and discussions!

What we need:

See also: Contributing


Roadmap

V1.0

Full

  • [x] Ansible Config

    • [x] Static Playbook-Directory

    • [x] Git Repository support

  • [ ] Users

  • [ ] 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

GPLv3

For dependencies see: attributions