Integration with the Openstack interface is our second plugin alongside the oVirt/RHV virtualization family. Thanks to it, you can perform most of the basic operations without logging into the vProtect dashboard.
After installation (which is described at the end of this article) you will see a new tab "vProtect" in the OpenStack menu.
Dashboard
The dashboard consists of several tabs that allow you to perform basic actions such as backup, restore or create a new schedule.
Backup
This tab shows all inventoried instances in your OpenStack environment.
Besides, you can also perform basic backup operations.
Restore
This tab displays all instances in the OpenStack environment that can be restored.
Restore window:
Schedule
As the name suggests, this tab allows you to create schedules, but not only.
Thanks to it, we will also create the policies necessary for their operation.
Tasks
Basic information about current tasks performed by vProtect.
OpenStack general integration setup
You can find the add-on in the GitHub repository. Extract the provided archive on to your Horizon host and execute python install.py VPROTECT_API_URL USER PASSWORD
When the installation process is completed, plugin files should be placed in /usr/share/openstack-dashboard/openstack_dashboard directory. If your path to dashboard directory is different, create symbolic links from plugin install directories to non-standard directories.
Alias /dashboard/static /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/static/
Directory tag informs you, where dashboards directories should be placed.
Second Directory tag informs where static directory from plugin should be placed
Example configuration file should look like this:
# Ansible managed
# If horizon is being served via SSL from this web server,
# then we must redirect HTTP requests to HTTPS.
# If horizon is being served via SSL via a load balancer, we
# need to listen via HTTP on this web server. If SSL is not
# enabled, then the same applies.
<VirtualHost 172.29.239.229:80>
ServerName aio1-horizon-container-b2daccaa.openstack.local
LogLevel info
ErrorLog syslog:daemon
CustomLog "|/usr/bin/env logger -p [daemon.info](http://daemon.info/) -t apache2" "%h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
Options +FollowSymLinks
RequestHeader set X-Forwarded-Proto "https"
WSGIScriptAlias / /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/openstack_dashboard/wsgi.py
WSGIDaemonProcess horizon user=horizon group=horizon processes=1 threads=1 python-path=/openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/site-packages
WSGIProcessGroup horizon
WSGIApplicationGroup %{GLOBAL}
<Directory /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/openstack_dashboard>
<Files wsgi.py >
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Files>
</Directory>
Alias /static /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/static/
Alias /dashboard/static /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/static/
<Directory /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/static/>
Options -FollowSymlinks
<IfVersion < 2.4>
AllowOverride None
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
Edit /openstack/venvs/horizon-23.1.0.dev65/lib/python3.8/dist-packages/openstack_dashboard/urls.py and add in urlPatterns following line
"""
URL patterns for the OpenStack Dashboard.
"""
from django.conf import settings
from django.conf.urls import include
from django.conf.urls.static import static
from django.conf.urls import url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views import defaults
import horizon
import horizon.base
from horizon.browsers import views as browsers_views
from horizon.decorators import require_auth
from openstack_dashboard.api import rest
from openstack_dashboard import views
urlpatterns = [
url(r'^$', views.splash, name='splash'),
url(r'^api/', include(rest.urls)),
url(r'^header/', views.ExtensibleHeaderView.as_view()),
url(r'', horizon.base._wrapped_include(horizon.urls)),
**url(r'^dashboard/', horizon.base._wrapped_include(horizon.urls)),**
]
# add URL for ngdetails
Restart httpd service
/etc/init.d/apache2 restart
After refreshing dashboard site you should see vProtect button in Openstack menu.