OpenStack Horizon (dashboard)

Поскольку в отличии от админов разработчики (да и пользователи) привыкли в большинстве своём тык тык мышкой - специально для них придумана вебморда.

Установка

Сетапить её можно куда угодно - мы положим на менеджмент

# yum install openstack-dashboard

Настройка

Очень долго я воевал с запуском джанги в uwsgi + nginx, но вроде поборол, хоть и не до конца. Итак, конфиги

/etc/uwsgi.d/dashboard
[uwsgi]
wsgi-file = /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
processes = 4
uid = dashboard
thunder-lock = True
lazy-apps = True
name = dashboard
gid = dashboard
master = True
plugins = python
buffer-size = 65535
enable-threads = True
chdir = /usr/share/openstack-dashboard/
socket = 127.0.0.1:8080
logto = /tmp/project_uwsgi.log
/etc/nginx/conf.d/dashboard.conf
server {  
    listen 80;
    server_name mgt1.cloud.ow1.in ext-mgt1.cloud.ow1.in;
    charset     utf-8;
 
    access_log /var/log/nginx/dashboard-access.log main;
    error_log /var/log/nginx/dashboard-error.log;
 
 
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8080;
    }
 
    location ~ /dashboard/(header|api|auth)/ {
        rewrite ^/dashboard(.*)$ $1 last;
    }
 
    location /dashboard/static/ {
      alias /usr/share/openstack-dashboard/static/;
    }
}

А потом ты обращаешься к опытным джангистам и они выгугливают тебе решение со второй ссылки. Уруру. Хвала специалистам:

/etc/nginx/conf.d/dashboard.conf
server {
    listen 80;
    server_name mgt1.cloud.ow1.in ext-mgt1.cloud.ow1.in;
    charset     utf-8;
 
    access_log /var/log/nginx/dashboard-access.log main;
    error_log /var/log/nginx/dashboard-error.log;
 
    location /dashboard/ {
        include uwsgi_params;
        uwsgi_param SCRIPT_NAME /dashboard;
        uwsgi_modifier1 30;
        uwsgi_pass 127.0.0.1:8080;
    }
 
    location /dashboard/static/ {
      alias /usr/share/openstack-dashboard/static/;
    }
}

так же нам потребуется поправить дефолтный конфиг под себя. лежит он по пути /etc/openstack-dashboard/local_settings. В общем и целом я поправил только переменную ALLOWED_HOSTS = ['*'], чтобы джанга отвечала на любое имя хоста, но ты, мой юный друг, можешь обмазаться безопасностью.

Теперь всё это стартуем

# systemctl enable nginx uwsgi@dashboard
# systemctl restart nginx uwsgi@dashboard

Если всё успешно взлетело - идём на свой хостнейм по 80 порту и получаем вебморду. Логинимся кредами admin (или любыми другими, если создали) и тыкаем кнопочки в браузере.