OCS Inventory NG

Server Installation
The prerequisites to install the server part of OCS Inventory NG are:
 * MySQL 4.1 ++ with ImmoDB engine
 * Perl 5.8 ++
 * Apache 2.0.X ++
 * mod_perl 1.29 ++
 * PHP 4.3.2 ++ with ZIP and GD support
 * Perl modules: XML::Simple, Compress::Zlib, DBI, DBD::Mysql, Apache::DBI, Net::IP, SOAP::Lite, XML::Entities
 * GNU gcc
 * GNU make

Install several packages necessary for the product: zypper --quiet install -y gcc make mysql apache2 apache2-mod_php5 php5-mysql php5-zip php5-gd php5-openssl php5-mbstring php5-curl php5-soap zypper --quiet install -y apache2-mod_perl perl-XML-Simple perl-DBI perl-DBD-mysql perl-Apache-DBI perl-Net-IP perl-SOAP-Lite

and several Perl modules: cpan -i YAML cpan -i Compress::Zlib cpan -i XML::Entities

After creating the ssl certificate and copying it under /etc/apache2/ssl.crt/ and /etc/apache2/ssl.key/, enable HTTPS: cd /etc/apache2/ssl.crt/ make sed "s+/server+/$(uname -n).example.com+g" /etc/apache2/vhosts.d/vhost-ssl.template > /etc/apache2/vhosts.d/ssl.conf sed -i 's/^APACHE_SERVER_FLAGS=""/APACHE_SERVER_FLAGS="SSL"/g' /etc/sysconfig/apache2 a2enmod perl /etc/init.d/apache2 restart

Start MySQL and set the root user password: /etc/init.d/mysql start /usr/bin/mysqladmin -u root password 'new-password'

Create in MySQL the database and the user required for the application: mysql -u root -p mysql mysql> CREATE DATABASE ocsweb ; mysql> GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' IDENTIFIED BY 'user-password' ; mysql> FLUSH PRIVILEGES ;

Make sure that the required daemons are started automatically at startup: chkconfig apache2 on chkconfig mysql on

Run the setup of OCS Inventory NG Server: tar xfz OCSNG_UNIX_SERVER-2.3.1.tar.gz cd OCSNG_UNIX_SERVER-2.3.1 ./setup.sh

+--+ +--+
 * Welcome to OCS Inventory NG Management server setup !  |
 * Welcome to OCS Inventory NG Management server setup !  |

Trying to determine whitch OS or Linux distribution you use +--+ +--+
 * Checking for Apache web server binaries !                            |

CAUTION: If upgrading Communication server from OCS Inventory NG 1.0 RC2 and previous, please remove any Apache configuration for Communication Server!

Do you wish to continue ([y]/n)?y Assuming Communication server 1.0 RC2 or previous is not installed on this computer.

Starting OCS Inventory NG Management server setup from folder OCSNG_UNIX_SERVER-2.3.1 Storing log in file OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log

+--+ +--+
 * Checking for database server properties...                     |

Your MySQL client seems to be part of MySQL version 5.5. Your computer seems to be running MySQL 4.1 or higher, good ;-)

Which host is running database server [localhost] ? OK, database server is running on host localhost ;-)

On which port is running database server [3306] ? OK, database server is running on port 3306 ;-)

+--+ +--+
 * Checking for Apache web server daemon...                             |

Where is Apache daemon binary [/usr/sbin/apache2ctl] ?/usr/sbin/httpd2-prefork OK, using Apache daemon /usr/sbin/httpd2-prefork ;-)

+--+ +--+
 * Checking for Apache main configuration file...                 |

Where is Apache main configuration file [/etc/apache2/httpd.conf] ? OK, using Apache main configuration file /etc/apache2/httpd.conf ;-)

+--+ +--+
 * Checking for Apache user account...                                   |

Which user account is running Apache web server [wwwrun] ? OK, Apache is running under user account wwwrun ;-)

+--+ +--+
 * Checking for Apache group...                                                 |

Which user group is running Apache web server [www] ? OK, Apache is running under users group www ;-)

+--+ +--+
 * Checking for Apache Include configuration directory...  |

Setup found Apache Include configuration directory in. Setup will put OCS Inventory NG Apache configuration in this directory. Where is Apache Include configuration directory [] ?/etc/apache2/conf.d OK, Apache Include configuration directory /etc/apache2/conf.d found ;-)

+--+ +--+
 * Checking for PERL Interpreter...                                             |

Found PERL Intrepreter at  ;-) Where is PERL Intrepreter binary [/usr/bin/perl] ? OK, using PERL Intrepreter /usr/bin/perl ;-)

Do you wish to setup Communication server on this computer ([y]/n)?y

+--+ +--+
 * Checking for Make utility...                |

OK, Make utility found at  ;-)

+--+ +--+
 * Checking for Apache mod_perl version...          |

Checking for Apache mod_perl version 1.99_22 or higher Found that mod_perl version 1.99_22 or higher is available. OK, Apache is using mod_perl version 1.99_22 or higher ;-)

+--+ +--+
 * Checking for Communication server log directory...   |

Communication server can create detailed logs. This logs can be enabled by setting integer value of LOGLEVEL to 1 in Administration console menu Configuration. Where to put Communication server log directory [/var/log/ocsinventory-server] ? OK, Communication server will put logs into directory /var/log/ocsinventory-server ;-)

++ ++
 * Checking for Communication server plugins configuration directory...   |

Communication server need a directory for plugins configuration files. Where to put Communication server plugins configuration files [/etc/ocsinventory-server/plugins] ? OK, Communication server will put plugins configuration files into directory /etc/ocsinventory-server/plugins ;-)

+---+ +---+
 * Checking for Communication server plugins perl directory...    |

Communication server need a directory for plugins Perl modules files. Where to put Communication server plugins Perl modules files [/etc/ocsinventory-server/perl] ? OK, Communication server will put plugins Perl modules files into directory /etc/ocsinventory-server/perl ;-)

+--+ +--+
 * Checking for required Perl Modules...                                |

Checking for DBI PERL module... Found that PERL module DBI is available. Checking for Apache::DBI PERL module... Found that PERL module Apache::DBI is available. Checking for DBD::mysql PERL module... Found that PERL module DBD::mysql is available. Checking for Compress::Zlib PERL module... Found that PERL module Compress::Zlib is available. Checking for XML::Simple PERL module... Found that PERL module XML::Simple is available. Checking for Net::IP PERL module... Found that PERL module Net::IP is available. Checking for SOAP::Lite Perl module... Found that PERL module SOAP::Lite is available. Checking for Archive::Zip Perl module... Found that PERL module Archive::Zip is available.

+--+ +--+
 * Checking for optional Perl Modules...           |

Checking for Apache2::SOAP PERL module... This module is only required by OCS Inventory NG SOAP Web Service. Do you wish to continue ([y]/n] ?y Checking for XML::Entities PERL module... Found that PERL module XML::Entities is available.
 * Warning: PERL module Apache2::SOAP is not installed !

+--+ +--+
 * OK, looks good ;-)                      |
 * Configuring Communication server Perl modules...    |
 * Configuring Communication server Perl modules...    |

Checking if your kit is complete... Looks good Writing Makefile for Apache::Ocsinventory

+--+ +--+
 * OK, looks good ;-)                      |
 * Preparing Communication server Perl modules...     |
 * Preparing Communication server Perl modules...     |

+--+ +--+
 * OK, prepare finshed ;-)                 |
 * Installing Communication server Perl modules...     |
 * Installing Communication server Perl modules...     |

+--+ +--+
 * OK, Communication server Perl modules install finished;-)|
 * Creating Communication server log directory...      |
 * Creating Communication server log directory...      |

Creating Communication server log directory /var/log/ocsinventory-server.

Fixing Communication server log directory files permissions. Configuring logrotate for Communication server. Removing old communication server logrotate file /etc/logrotate.d/ocsinventory-NG Writing communication server logrotate to file /etc/logrotate.d/ocsinventory-server

+--+ +--+
 * OK, Communication server log directory created ;-)           |
 * Creating Communication server plugins configuration directory...  |
 * Creating Communication server plugins configuration directory...  |

Creating Communication server plugins configuration directory /etc/ocsinventory-server/plugins.

+--+ +--+
 * OK, Communication server plugins configuration directory created ;-) |
 * Creating Communication server plugins Perl directory...      |
 * Creating Communication server plugins Perl directory...      |

Creating Communication server plugins Perl directory /etc/ocsinventory-server/perl.

+--+ +--+
 * OK, Communication server plugins Perl directory created ;-)     |
 * Now configuring Apache web server...                  |
 * Now configuring Apache web server...                  |

To ensure Apache loads mod_perl before OCS Inventory NG Communication Server, Setup can name Communication Server Apache configuration file 'z-ocsinventory-server.conf' instead of 'ocsinventory-server.conf'. Do you allow Setup renaming Communication Server Apache configuration file to 'z-ocsinventory-server.conf' ([y]/n) ?y OK, using 'z-ocsinventory-server.conf' as Communication Server Apache configuration file Removing old communication server configuration to file /etc/apache2/conf.d/ocsinventory.conf Writing communication server configuration to file /etc/apache2/conf.d/z-ocsinventory-server.conf

+--+ +--+
 * OK, Communication server setup successfully finished ;-)      |
 * Please, review /etc/apache2/conf.d/z-ocsinventory-server.conf |
 * to ensure all is good. Then restart Apache daemon.          |
 * to ensure all is good. Then restart Apache daemon.          |

Do you wish to setup Administration Server (Web Administration Console) on this computer ([y]/n)?y

+--+ +--+
 * Checking for Administration Server directories...    |

CAUTION: Setup now install files in accordance with Filesystem Hierarchy Standard. So, no file is installed under Apache root document directory (Refer to Apache configuration files to locate it). If you're upgrading from OCS Inventory NG Server 1.01 and previous, YOU MUST REMOVE (or move) directories 'ocsreports' and 'download' from Apache root document directory. If you choose to move directory, YOU MUST MOVE 'download' directory to Administration Server writable/cache directory (by default /var/lib/ocsinventory-reports), especially if you use deployment feature.

Do you wish to continue ([y]/n)?y Assuming directories 'ocsreports' and 'download' removed from Apache root document directory.

Where to copy Administration Server static files for PHP Web Console [/usr/share/ocsinventory-reports] ? OK, using directory /usr/share/ocsinventory-reports to install static files ;-)

Where to create writable/cache directories for deployment packages, administration console logs, IPDiscover and SNMP [/var/lib/ocsinventory-reports] ? OK, writable/cache directory is /var/lib/ocsinventory-reports ;-)

+--+ +--+
 * Checking for required Perl Modules...           |

Checking for DBI PERL module... Found that PERL module DBI is available. Checking for DBD::mysql PERL module... Found that PERL module DBD::mysql is available. Checking for XML::Simple PERL module... Found that PERL module XML::Simple is available. Checking for Net::IP PERL module... Found that PERL module Net::IP is available.

+--+ +--+
 * Installing files for Administration server...      |

Creating PHP directory /usr/share/ocsinventory-reports/ocsreports. Copying PHP files to /usr/share/ocsinventory-reports/ocsreports. Fixing permissions on directory /usr/share/ocsinventory-reports/ocsreports. Creating database configuration file /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php. Creating IPDiscover directory /var/lib/ocsinventory-reports/ipd. Fixing permissions on directory /var/lib/ocsinventory-reports/ipd. Creating packages directory /var/lib/ocsinventory-reports/download. Fixing permissions on directory /var/lib/ocsinventory-reports/download. Creating snmp mibs directory /var/lib/ocsinventory-reports/snmp. Fixing permissions on directory /var/lib/ocsinventory-reports/snmp. Creating Administration server log files directory /var/lib/ocsinventory-reports/logs. Fixing permissions on directory /var/lib/ocsinventory-reports/logs. Creating Administration server scripts log files directory /var/lib/ocsinventory-reports/scripts. Fixing permissions on directory /var/lib/ocsinventory-reports/scripts. Configuring IPDISCOVER-UTIL Perl script. Installing IPDISCOVER-UTIL Perl script. Fixing permissions on IPDISCOVER-UTIL Perl script. Writing Administration server configuration to file /etc/apache2/conf.d/ocsinventory-reports.conf

+--+ +--+
 * OK, Administration server installation finished ;-)          |
 * Please, review /etc/apache2/conf.d/ocsinventory-reports.conf
 * to ensure all is good and restart Apache daemon.           |
 * Then, point your browser to http://server//ocsreports
 * to configure database server and create/update schema.       |
 * Then, point your browser to http://server//ocsreports
 * to configure database server and create/update schema.       |

Setup has created a log file OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log. Please, save this file. If you encounter error while running OCS Inventory NG Management server, we can ask you to show us his content !

DON'T FORGET TO RESTART APACHE DAEMON !

Enjoy OCS Inventory NG ;-)

Replace in the file: /etc/apache2/conf.d/z-ocsinventory-server.conf to the line: PerlSetVar OCS_DB_PWD ocs ocs with the real 'user-password'

Workaroud for dated Perl: sed -i 's/gr;/g;/g' /usr/lib/perl5/site_perl/5.10.0/Apache/Ocsinventory/Interface/SoftwareCategory.pm

Workaroud for dated PHP: vi /usr/share/ocsinventory-reports/ocsreports/require/extensions/ExtensionManager.php
 * 1) comment the definition of const FORBIDEN_EXT_NAME

Restart the web server: /etc/init.d/apache2 stop /etc/init.d/apache2 start

and remove the compiler: zypper --quiet remove -y gcc

Run the "web installer": https://inventory.example.com/ocsreports/install.php

and set the various parameters as follows: MySql login : ocs MySql password : 'user-password' Name of Database: ocsweb MySql HostName : localhost

Delete install.php file: rm /usr/share/ocsinventory-reports/ocsreports/install.php

Change the permissions to enable the creation of other users: chmod g+w /usr/share/ocsinventory-reports/ocsreports/plugins/main_sections/conf/*

Links

 * Official site
 * Documentation