wiki:Reports/Dynamic/Installation

Version 1 (modified by solj, 13 years ago) (diff)

--

Overview

Installation of the new reporting system requires installation of a python module and configuration of the Apache webserver with a virtual host. Additionally, until fully integrated, periodically an "import script" must be executed via Cron or similar mechanism.

Versions 0.9.5pre1 and greater no longer need to be installed at the root url for a given host, and therefore no longer require their own virtual host.

Prerequisites

  • sqlite3
  • pysqlite2
  • Django 0.96.x
  • mod-python

Install

setup bcfg2.conf or bcfg2-web.conf

Be sure to include the specified fields included the example bcfg2.conf file. These can be specified in either /etc/bcfg2.conf, if it is readable by the webserver user, or /etc/bcfg2-web.conf. This changed in 0.9.5.

Install skeleton database

Inside the bcfg2-tarball/examples/ directory from the tarball you will find brpt.sqlite. Copy this file to <path-to-bcfg2-repository>/etc/brpt.sqlite

If you are not using sqlite (the default choice), please see the "Notes on Alternative Databases" section below.

At this point we can import statistics date in to the database from your clients.xml and statistics.xml files.

execute the following: python .../site-packages/Bcfg2/Server/Reports/importscript.py

(Versions 0.8.7 and prior must specify: python .../site-packages/Bcfg2/Server/Reports/importscript.py-c <repo>/Metadata/clients.xml -s <repo>/etc/statistics.xml )

It might be a good idea to write a 1-line shell script to execute this very long command; it is only an interim measure until the /etc/statistics.xml file is obsoleted.

At this point you shouldn't get any errors or tracebacks. Common problems include incorrect installation of the pysqlite2 module.

Next we configure Apache:

An example site config is included below for the vhost "reports.mcs.anl.gov":

<VirtualHost reports.mcs.anl.gov>
        ServerAdmin webmaster@mcs.anl.gov
        ServerName reports.mcs.anl.gov
        DocumentRoot /var/www/reports
        <Directory /var/www/reports>
                Order deny,allow
                Deny from all
                Allow from localhost #you may want to change this
                AllowOverride None
        </Directory>

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        ServerSignature Off

        # Stop TRACE/TRACK vulnerability
        <IfModule mod_rewrite.c>
                RewriteEngine on
                RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
                RewriteRule .* - [F]
        </IfModule>
<Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE Bcfg2.Server.Reports.settings
        PythonDebug On
</Location>
<Location "/site_media/">
        SetHandler None
</Location>
</VirtualHost>

The first three lines of this configuration must be customized per site.

The bcfg2-tarball/reports/site_media/ directory needs to be copied to /var/www/reports/site_media/ It could live anywhere; as long as the contents are accessible on the virtual host at /site_media/.

At this point you should be able to point your web browser to the virtualhost you created and see the new reports.

One final step is to configure your system to import statistics data regularly. execute the following: python .../site-packages/Bcfg2/Server/Reports/importscript.py

(Versions 0.8.7 and prior must specify: python .../site-packages/Bcfg2/Server/Reports/importscript.py-c <repo>/Metadata/clients.xml -s <repo>/etc/statistics.xml )

on a regular basis, perhaps as often as every 5 or 10 minutes or as infrequent as daily, so your reports are always up to date.

Notes on Alternative Databases

If you choose to use a different database, you'll need to edit settings.py from inside of the brpt module. Instructions on this process can be found on the Django website. The provided sqlite database file is pre-populated with the appropriate tables, if you choose a different database engine, you will need to run "python manage.py syncdb" from the brpt module directory to configure it before importing any data. As of vers 0.9.5, these settings are moved to the more appropriate /etc/bcfg2.conf

If you encounter any problems or have suggestions for these instructions feedback is welcome and encouraged.