Version 4 (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
- 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.
Configure Apache
An example site config is included below for the vhost "reports.mcs.anl.gov":
<VirtualHost reports.mcs.anl.gov> ServerAdmin [email protected] 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.