Skip to content
Wilbur Longwisch edited this page May 26, 2023 · 28 revisions

Welcome to the openDCIM WIKI

Data Center Management Basics

Data Centers have been around since the first computers were built, only they weren't called data centers, yet. However, there's a lot of talk about what exactly constitutes a data center. Is a closet with 1 computer in it a data center? What if it's in a cabinet? How about an office with desktop PC's lined up across shelved? Is there a minimum size to qualify as a data center? We, the openDCIM project, have adopted a very simple philosophy around it - if it's important enough for you to want to track it, it's a data center.

That being said, we have a very wide range of "clients" using openDCIM, with a very wide range of experience in data center management. Some of the fields and prompts in the application make some basic assumptions about the knowledge level of the user. To help bridge the knowledge gap, we have some helpful information. Not all of this is directly applicable to openDCIM, but is certainly part of the corpus of knowledge around data center management itself.

Glossary

Standards

Client Requirements

  • Web browser that is reasonably standards compliant.
    • We do not support Internet Explorer 8 or earlier, in other words
    • Developers regularly test against the latest IE, Chrome, Mozilla, and Safari
    • Some mobile devices (tablets/phones) work decently. If you want to scan barcodes for input, I suggest looking at Bluetooth enabled scanners (around $200 and up).
  • Javascript must be enabled on your client
  • You must be connected to the network at all times - openDCIM does not work in a batch mode

System Requirements

openDCIM is designed to run on a fairly cookie cutter LAMP system. However, there is no operating system specific code, so it could conceivably run on any operating system that can run the components.

  • Apache Web Server 2.x, or similar web server
  • It is highly recommended that you install openDCIM as its own Virtual Host on the server rather than as a subtree of an existing site
    • Set up your page as SSL enabled!
    • The main page checks for SSL, and enforces a redirect to https if you are accessing via insecure methods. If you didn't set up an SSL site, this will result in an infinite loop with your browser until you tell it to stop.
    • Basic auth is still supported through Apache, but some form of Modern Authentication is highly recommended (SAML/OIDC). You may offload not only the authentication but also authorization to your Identity Provider.
  • MariaDB/MySQL - you can either run this on the same host or a separate host. Space requirements are very low.
  • PHP 8.x - Make sure that you have libraries enabled for MySQL and SNMP access.

Optional Modules

These are used in the Ubuntu based container build

  • locales-all
  • tzdata
  • mariadb-client
  • apache2
  • php
  • php-mbstring
  • php-snmp
  • php-gd
  • php-mysql
  • php-zip
  • php-curl
  • php-ldap
  • php-redis (needed when load balancing multiple instances)
  • php-xml
  • php-php-gettext
  • locales
  • graphviz

Getting started

  • Some information about running this Cloud Native (in containers) is at Kubernetes
  • Download from http://www.opendcim.org/downloads.html
  • Follow the installation instructions in the README file
    • Set up your database
    • Configure openDCIM to talk to your database
    • Log in for the first time. '''The first user to log in is the default administrator! (when using Apache authentication)'''
  • Follow the Configuration guide
  • Setting up BackgroundJobs.
  • Ubuntu 15.04 specific installation notes
  • CentOS Installation guide
* RHEL 9 Install Guide

Install all the components that are necessary

yum install mod_ssl httpd php mariadb-server php-pdo php-mysqlnd php-mbstring php-snmp php-xml php-snmp php-gd php-ldap php-intl graphviz graphviz-gd wget vim

Enable mariadb and apache to start at boot

systemctl enable httpd.service --now
systemctl enable mariadb.service --now

Configure mariadb

mysql_secure_installation

Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Remove anonymous users? [Y/n]
 ... Success!
Disallow root login remotely? [Y/n]
 ... Success!
Remove test database and access to it? [Y/n]
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reload privilege tables now? [Y/n]
 ... Success!

Create database

#  mysql -u root -p
MariaDB [(none)]> create database dcim;
MariaDB [(none)]> grant all privileges on dcim.* to 'dcim' identified by 'dcim';
MariaDB [(none)]> exit

Add a virtual host for opendcim

# vim /etc/httpd/conf.d/opendcim.conf
 <VirtualHost *:443>
     ServerAdmin [email protected]
     DocumentRoot /opt/openDCIM/opendcim
     ServerName opendcim.example.net
     SSLCertificateKeyFile "/etc/pki/tls/private/localhost.key"
     SSLCertificateFile "/etc/pki/tls/certs/localhost.crt"
     SSLCACertificateFile "/etc/pki/tls/certs/ca-bundle.crt"
     <Directory /opt/openDCIM/opendcim>
         AllowOverride All
         AuthType Basic
         AuthName "openDCIM"   
         AuthUserFile /opt/openDCIM/.htpasswd
         Require valid-user
     </Directory>
 </VirtualHost>

Create opendcim directories and get application from github

mkdir -p /opt/openDCIM/
cd /opt/openDCIM/
wget https://github.com/opendcim/openDCIM/archive/refs/tags/23.01.tar.gz
tar -zxpf 23.01.tar.gz
ln -s openDCIM-23.01 opendcim
mkdir -p assets/{pictures,drawings}
chown apache:apache assets/*
ln -s /opt/openDCIM/assets/ /opt/openDCIM/opendcim/
cp opendcim/db.inc.php-dist opendcim/db.inc.php

Add user to htpasswd for apache authentication

htpasswd -c /opt/openDCIM/.htpasswd dcim

Open the default firewall rules to allow connection to apache

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Reload apache config after adding virtualhost

systemctl reload httpd

Log in as user dcim and whatever password you set and finish the install

https://<server ip goes here>

  • Why doesn't Translation work on my system? Everything is still in English
  • How to add your SiteContact information to the login and main pages.

Several videos exist on YouTube to guide you through the process of setting up and using openDCIM. Check it out here.

Specifically, a video of the installation process is available at:

Installing openDCIM from Scratch

Upgrading

  • Simply untar the new version onto your server, configure, and browse to the site. The install.php will automatically run if it is present. That being said, however, there are a few more steps involved in a "best practices" Upgrade.

Integration

  • LDAP for Authentication and Authorization is available as of version 4.2.
  • Modern Authentication is available for configuration of Authorization and Authentication and is highly recommended
  • RESTful API Documentation
  • Local_Reports

Shared Template Repository

At one point, I had a grand idea that if I set up a repository for people to submit their device templates and pictures that people would contribute things of value to it. However, history proved me wrong in that it was quickly inundated with users submitted very incomplete templates with absolutely no regard for consistency in how things were named. This section of the wiki is still here to let you know that yes, there was a shared repo. But no, we are not giving out API keys for submitting templates.

You are welcome to download what is already in the repository.

Basic Navigation

You have the option of maps not only of the data center floor plans, but of the region (in the case of multiple data centers) to drill down from the top view to a more detailed view. The other option is to utilize the Side Navigation Tree, where the hierarchical structure of your data center elements are displayed.

Site Management

Daily Operations

Auditing

Reporting

Clone this wiki locally