Free Ansible Web Management Panel Deployment Solutions (Comparison of Ansible AWX and Polemarch)

This is a free deployment solution for the Ansible Web management panel designed for beginners. After a comprehensive comparison of mainstream tools, I recommend two solutions: Ansible AWX (enterprise-level features) and Polemarch (lightweight and easy to use). Both solutions are based on Docker container deployment, reducing the difficulty of environment configuration.

⚖️ 1. Comparison of Solutions and Selection Recommendations

Features

Ansible AWX

Polemarch

Applicable Scenarios

Enterprise-level multi-user collaboration, auditing, scheduled tasks

Personal/small team quick operations Playbook

Complexity

Medium to high (requires Docker Compose)

Low (pure Python application)

Core Features

Visual task queue, RBAC permissions, API integration, log auditing

Basic Playbook execution, host management, simple task scheduling

Deployment Difficulty

⭐⭐⭐⭐ (requires pre-installed Docker)

⭐⭐ (only requires Python environment)

Recommendation Index

Suitable for beginners needing complete functionality

Suitable for zero-based quick experience

🐳 2. Detailed Deployment Process for Ansible AWX (Enterprise-level Recommendation)

Environment Preparation

bash

# 1. Install Docker & Docker Compose (Linux)

sudo apt update

sudo apt install -y docker.io docker-compose git

sudo systemctl enable –now docker

sudo usermod -aG docker $USER # Current user added to docker group

newgrp docker # Refresh user group

# 2. Clone the official repository of AWX (version 17.1.0 stable)

git clone -b 17.1.0 https://github.com/ansible/awx.git

cd awx/installer

Edit Configuration File inventory

Open the inventory file with a text editor and adjust the following parameters:

ini

admin_user=admin

admin_password=your_secure_password # Customize admin password

pg_host=postgres

pg_username=awx

pg_password=awxpass # Database password

pg_database=awx

pg_port=5432

Start AWX

bash

# 3. Execute the installation Playbook (takes about 10-15 minutes)

ansible-playbook -i inventory install.yml

Function Description:

  • Automatically pulls PostgreSQL, Redis, and AWX Web/A task containers
  • Initializes the database and creates an admin account
  • Exposes Web port 80 (HTTP) and task port 8052

Access and Verification

  1. Open the browser and go to http:// server IP
  2. Login account: admin / your_secure_password
  3. After the first entry:
  • Add Credentials: SSH keys/ account passwords (Credentials → +)
  • Configure Inventory: Static host list or dynamic cloud provider source
  • Create Task Template: Bind Playbook repository and execute

🐍 3. Lightweight Deployment of Polemarch (Minimal Version)

Environment Preparation (Python3.6+)

bash

# 1. Install Dependencies

sudo apt update

sudo apt install -y python3-pip git

# 2. Clone the Project

git clone https://github.com/vstconsulting/polemarch.git

cd polemarch

Initialize the Application

bash

# 3. Install Python Dependencies

pip3 install -r requirements.txt

# 4. Copy Configuration File and Modify Database

cp polemarch/settings.py.example polemarch/settings.py

# Use default SQLite without modification (for production, it is recommended to switch to MySQL)

# 5. Initialize Database

python3 manage.py migrate

# 6. Create Admin User

python3 manage.py createsuperuser # Enter account password as prompted

# 7. Start Service (default port 8000)

python3 manage.py runserver 0.0.0.0:8000

Access and Basic Operations

  1. Open the browser and go to http:// server IP:8000
  2. Function Navigation:
  • Projects: Bind Playbook Git repository (automatic synchronization)
  • Inventories: Manage host groups
  • Templates: One-click execution of Playbook (supports parameter input)
  • History: Task execution record tracing

🔧 4. Key Plugins/Component Function Analysis

Component

Function

**Solution

PostgreSQL

Stores structured data such as configurations, task logs, user permissions for AWX

AWX

Redis

Caches task status, accelerates WebSocket real-time log push

AWX

Celery

Distributed task queue, handles concurrent Playbook execution (AWX core)

AWX

SQLite

Polemarch default embedded database, maintenance-free but performance-limited

Polemarch

Django

Polemarch‘s Web framework, provides user authentication and basic UI

Polemarch

⚠️ 5. Common Problems for Beginners

  1. AWX Installation Stuck:
  • Check if Docker memory is ≥4GB (docker stats to check)
  • Increase Docker image source acceleration: Add to inventory docker_registry_mirror=https://xxxx.mirror.aliyuncs.com
  • Polemarch Execution of Playbook Failed:
    • Confirm that ansible-playbook command is in the system PATH (can verify with which ansible-playbook)
    • Check if the path in the Playbook is an absolute path (recommended /opt/playbooks/)
  • Permission Issues:
    • AWX tasks need to bind SSH credentials (Settings → Credentials → Machine type)
    • Polemarch needs to configure in settings.py to point ANSIBLE_PRIVATE_KEY_FILE to the private key path

    💎 Final Recommendations

    • If you want to learn enterprise-level automation comprehensively → Choose AWX, along with the official documentation for in-depth learning
    • For quick validation/personal use → Choose Polemarch, complete deployment in 30 minutes
    • Further learning:
      • Store Playbook in a Git repository for version control (both support)
      • Use nginx reverse proxy to add HTTPS encrypted access
      • Integrate Prometheus to monitor task execution status (AWX natively supports)

    Both solutions have been tested successfully on CentOS 7/Ubuntu 20.04. If you encounter blocking during deployment, first check network connectivity and permission configuration (80% of issues are caused by permissions).

    #ansible awx

    #Polemarch

    #Operations Management

    Leave a Comment