# AWX direkt auf der Maschine

Hier eine komplette, kopierfertige Anleitung für die native Installation von AWX 17.1.0 auf Ubuntu 24.04 ohne Docker, mit bestehendem Nginx Proxy Manager als Reverse-Proxy. Einfach der Reihe nach abarbeiten:

---

## 1. System-Pakete installieren

```bash
sudo apt update
sudo apt install -y \
  git build-essential libssl-dev libffi-dev python3-venv python3-pip \
  libpq-dev postgresql postgresql-contrib redis-server rabbitmq-server \
  nginx curl pwgen

```

---

## 2. PostgreSQL-Datenbank &amp; RabbitMQ anlegen

### a) PostgreSQL

```bash
sudo -u postgres psql <<'EOF'
CREATE USER awx WITH PASSWORD 'AWX_db_passwort';
CREATE DATABASE awx OWNER awx ENCODING 'UTF8';
\q
EOF

```

### b) RabbitMQ

```bash
sudo rabbitmqctl add_user awx MQ_passwort
sudo rabbitmqctl set_user_tags awx administrator
sudo rabbitmqctl set_permissions -p / awx ".*" ".*" ".*"

```

---

## 3. AWX-Quellcode auschecken

```bash
sudo mkdir -p /opt/awx
sudo chown $USER:$USER /opt/awx
cd /opt/awx
git clone -b 17.1.0 https://github.com/ansible/awx.git .

```

---

## 4. Python-Virtualenv &amp; Abhängigkeiten

```bash
cd /opt/awx
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install psycopg2-binary redis kombu django gunicorn
deactivate

```

---

## 5. AWX-Settings anlegen

Erstelle `~/awx_settings.py` mit:

```python
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'awx',
        'USER': 'awx',
        'PASSWORD': 'AWX_db_passwort',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

BROKER_URL = 'amqp://awx:MQ_passwort@localhost:5672//'

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'},
    }
}

SECRET_KEY = '$(pwgen -N1 -s32)'
ALLOWED_HOSTS = ['*']

```

Exportiere:

```bash
export AWX_SETTINGS_MODULE=awx_settings

```

---

## 6. Datenbank-Migration &amp; Admin anlegen

```bash
cd /opt/awx/awx
source /opt/awx/.venv/bin/activate
./manage.py makemigrations
./manage.py migrate
./manage.py createsuperuser --username=admin --email=admin@example.com
deactivate

```

---

## 7. Gunicorn als systemd-Service

Erstelle `/etc/systemd/system/awx-gunicorn.service`:

```ini
[Unit]
Description=AWX Gunicorn Service
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/opt/awx/awx
Environment="AWX_SETTINGS_MODULE=awx_settings"
Environment="PATH=/opt/awx/.venv/bin"
ExecStart=/opt/awx/.venv/bin/gunicorn \
    --access-logfile - --workers 3 --bind 127.0.0.1:8052 awx.wsgi:application

[Install]
WantedBy=multi-user.target

```

Aktivieren und starten:

```bash
sudo systemctl daemon-reload
sudo systemctl enable --now awx-gunicorn

```

---

## 8. Statische Dateien sammeln

```bash
cd /opt/awx/awx
source /opt/awx/.venv/bin/activate
./manage.py collectstatic --noinput
deactivate

```

Die Assets liegen nun in `/opt/awx/awx/ui/static/`.

---

## 9. Nginx Proxy Manager konfigurieren

Im NPM-WebUI:

1. **Proxy Host** anlegen
    
    
    - **Domain Names**: `awx.deine-domain.tld`
    - **Scheme**: `http`
    - **Forward Hostname/IP**: `127.0.0.1`
    - **Forward Port**: `8052`
2. **Advanced → Custom Nginx Configuration**
    
    ```nginx
    location /static/ {
        alias /opt/awx/awx/ui/static/;
        access_log off;
        expires max;
    }
    
    ```
3. **SSL** (optional): Let’s Encrypt aktivieren, “Block Common Exploits” ankreuzen.

Speichern und testen.

---

## 10. Fertig &amp; Zugriff

Rufe im Browser auf:

```
https://awx.deine-domain.tld/

```

Login mit `admin` und deinem Passwort.

—  
Viel Erfolg!