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
- Open the browser and go to http:// server IP
- Login account: admin / your_secure_password
- 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
- Open the browser and go to http:// server IP:8000
- 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
- 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
- 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/)
- 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