Return to site

Cmdbuild Installation Ubuntu

broken image


Can we use a CMDB for the whole IT management? In this post we'll see what a CMDB should be, and we'll see how to import existing network devices into a CMDB using NAPALM. Finally we'll see how to operate on network devices from a CMDB and how pushing configurations. This is a compendium to my speech in Milano for AutomateIT² event. Install windows live mail desktop.

Suppose an IT manager is asking for the total number of active VMs to his staff:

I tried to complete this tutorial: but when I have to do the first step to install the aplication, I tried to 'open in browser' but it shows a white page all ti.

  • Alice: consults an Excel file and reports 1984 running systems. (What should be)
  • Bob: consults AWS, Azure, GCE and internal vCenter and reports 2010 running systems. (What is)
  • Carol: remembers that 5 internal VMs are running 33 Docker containers, and asks if they should be included or not. (Exception)

What happened?

The supposed running VMs reported by an Excel is not compliant with the real world.The real world is reported by the vCenter, AWS, Azure and Google Compute Engine. We can call them Source Of Truth.

Source of Truth (SOT)The source of truth is a trusted data source that gives a complete picture of the data object as a whole. (What is)

The Excel file reports what should be, and we can call it Source Of Record, and because it should be single, we can call it Single Source Of Record:

System of Record (SOR)A system of record is the authoritative data source for a given data element or piece of information. (What should be)

I know that the above definitions are different from what others are using, but I guess you agree that vCenter is a Source Of Truth, not an Excel file. Let me give you an example:

Suppose you have a fantastic system that synchronize the vCenter with an Excel file. Are you sure that a manually created VM will be added to the Excel file? Are you sure that a powered off, orphaned VM will be added to the Excel file? Are you sure Excel is reporting the real number of the VM in any moment?

That's why I'm convinced that the definition of 'Single Source Of Truth' is wrong, and that's why I changed into 'Single System Of Record'.

Suppose now we want to store all IT data into a single place: obviously Excel is not the right place. We should use a different and more flexible data structure, depending on what our needs are: we could use CMDBuild, ITOP, or simply Git/CVS, depending on requisites.

In this example we suppose we want to store every single IT item (device, service, database schema…) in a single place. In this case we need a CMDB:

A configuration management database (CMDB) is a repository that acts as a data warehouse for information technology (IT) installations. It holds data relating to a collection of IT assets (commonly referred to as configuration items (CI)), as well as to descriptive relationships between such assets.

Let's now focus on CMDBuild as a CMDB.

CMDBuild installation on Ubuntu 16.04

Before starting, download the following three packages:

  1. latest JRE
  2. latest Tomcat
  3. latest CMDBuild

Be sure your locale is set to en_US.UTF-8, if not, reconfigure:

Install PostgreSQL and set the admin password:

Unpack Java and set it as a default for the system:

Unpack Tomcat, add CMDBuild app to it and start the container:

Now CMDBuild is available at http://a.b.c.d:8080/cmdbuild-2.4.3/Connect to CMDBuild webapp using http://a.b.c.d:8080/cmdbuild-2.4.3/ and do the first configuration:

  • Type: Empty
  • Name: cmdbuild
  • Host: localhost
  • Port: 5432
  • Super user: postgres
  • Password:
  • User type: Super user

Be sure the database cmdbuild does not exist. If it does (or if you want to start from the beginning), delete it with:

If you encounter errors, check also /var/log/postgresql for logs.

Minimal configuration of CMDBuild

The configuration of CMDBuild is out of scope, but a brief introduction is provided because of the scope of this post.

CMDBuild presents two views:

  • Data management module: default after the login process, allows to manage data.
  • Administration module: allows to manage structures.

The first step requires to build the structures for our asset data. Open the administration module, go to classes and the following classes:

  • Name: asset
    • Description: Asset
    • Type: Standard
    • Inherits from: Class
    • Superclass: yes
  • Name: infrastructure
    • Description: Infrastructure
    • Type: Standard
    • Inherits from: Asset
    • Superclass: yes
  • Name: networkdevices
    • Description: Network Devices
    • Type: Standard
    • Inherits from: Infrastructure
    • Superclass: no
  • Name: networks
    • Description: Networks
    • Type: Standard
    • Inherits from: Asset
    • Superclass: yes
  • Name: ipv4addresses
    • Description: IPv4 Addresses
    • Type: Standard
    • Inherits from: Networks
    • Superclass: no
  • Name: ipv4networks
    • Description: IPv4 Networks
    • Type: Standard
    • Inherits from: Networks
    • Superclass: no
  • Name: interfaces
    • Description: Interfaces
    • Type: Standard
    • Inherits from: Networks
    • Superclass: no

The second step requires to build relationship for the above classes. The idea is the following:

  • a network device (a router for example) contains many interfaces;
  • each interface can have VLANs, one VRF, IPv4 addresses and one OSPF area;
  • each IPv4 address is part of an IPv4 network.

Go to domains and add the following domains:

  • Name: networkdevice2interfaces
    • Description: Network Device to Interfaces
    • Origin: Network Devices
    • Destination: Interfaces
    • Direct description: Interface
    • Inverse description: Device
    • Cardinality: 1:N
  • Name: interface2ipv4addresses
    • Description: Interface to IPv4 Addresses
    • Origin: Interfaces
    • Destination: IPv4 Addresses
    • Direct description: IPV4 Address
    • Inverse description: Interface
    • Cardinality: 1:N
  • Name: ipv4addresstoipv4network
    • Description: IPv4 Address to IPv4 Network
    • Origin: IPv4 Addresses
    • Destination: IPv4 Networks
    • Direct description: IPv4 Network
    • Inverse description: IPV4 Address
    • Cardinality: N:1
  • Name: interface2interface
    • Description: Interface to Interface
    • Origin: Interfaces
    • Destination: Interfaces
    • Direct description: Connected to
    • Inverse description: Connected to
    • Cardinality: 1:1

Finally we need to configure attributes for each class:

  • Network Devices:
    • Code: Serial (Unique, Mandatory, STRING(100))
    • Description: Hostname (Unique, Mandatory, STRING(250))
    • Vendor: Vendor (Unique, Mandatory, STRING(256))
    • Version: Version (Mandatory, STRING(256))
  • Interfaces:
    • Code: MAC Address (Mandatory, STRING(100))
    • Description: Interface Name (Unique, Mandatory, STRING(250))
  • IPv4 Addresses:
    • Description: IPV4Address (Unique, Mandatory, STRING(100))
    • FQDN: FQDN (STRING(250))
  • IPv4 Networks:
    • Description: IPv4 Network (Unique, Mandatory, STRING(100))

Now a basic structure of the CMDB is ready.

Discovering a network device

Nowadays there are many to discover a network device. The classic one is based on the, widely supported, SNMP protocol. Suppone a Cisco router, and configure it with a SNMPv3 user:

Now we can get some useful information via SNMPv3:

Finding all information via SNMP could be hard, because data structures (MIBs) are not so easy to find and understand.Another way to get information from network devices is NAPALM:

Before using NAPALM with a classic Cisco IOS device (via SSH), the device must be configured:

Remember you need at least a 768 length key, and, of course, a reachable IP address.

Now devices can be discovered using the first script:

After the execution, CMDBuild is populated with some information gathered from the discovered devices.The script:

Ubuntu
  • collects hostname, interfaces, MAC addresses and IP addresses;
  • add all collected data to CMDBuild and create reliationships.

Managing the infrastructure from a CMDB

Every network change should be initiated from a CMDB. Let's see for example how to configure a new interfaces.In Asset -> Networks -> IPv4 Networks add a card: 10.1.2.0/24.Now go to Asset -> Networks -> IPv4 Addresses and add two IP addresses: 10.1.2.1 and 10.1.2.2. Be sure also you link each IP address to the parent network (10.1.2.0/24) creating the proper relationship.Now go to Asset -> Networks -> Interfaces and create two relationship, each between an interface and an IP address.

The configuration is complete, now push it to the devices:

Now R1 can ping R2:

CCMDBuild useful API

I found the offical documentation by Tecnoteca not so exaustive. Here the APIs I used:

Authentication and sessions

The first request must authenticate against CMDBuild and get a session token:

Octopus se software crack. In addition, we may use third-party services such as Google Analytics that collect, monitor and analyze this type of information in order to increase our Site's functionality. This log data may include information such as your computer's Internet Protocol ('IP') address, browser type, browser version, the pages of our Site that you visit, the time and date of your visit, the time spent on those pages and other statistics. These third-party service providers have their own privacy policies addressing how they use such information.

The session token is hb90u9d3l4jqunf8ni6s7jisli. All queries must include the token in the HTTP headers: CMDBuild-Authorization: hb90u9d3l4jqunf8ni6s7jisli.

List the classes

List the all entries (cards) for a class

Cmdbuild Installation Ubuntu

List a specific entry (card) for a class

Filter the output (cards)

Prepare a filter as the following:

Operators can be contain, equal, notequal, like (using %), isnull, isnotnull, greater, lower .

Cmdbuild Install On Ubuntu

Filters can be concatenated with and or or:

Apply the URLencoded filter using a GET request:

List all relationships (domains)

List all relationships for a specific domain

Filter the output (domains)

Prepare a filter as the following:

Apply the URLencoded filter using a GET request:

Add a new entry (card)

Let's add also a new interface:

Cmdbuild Installation

Add a new relationship (domain)

Cmdbuild Installation Ubuntu 16.04

References

  • A CMDB for IT infrastructures (slides for AutomateIT² event)')

Install Cmdbuild On Ubuntu 14.04

I need remote help to have the sprogram openmaint ([login to view URL]) installed and fully running in my computer. This would be done over teamviewer or other remote connectivity program.

Cmdbuild On Ubuntu

Please bid only if you have done this job before, or if you are very familiar to Apache Tomcat, PostGIS, Postgresql, Alfresco and the resto of required software. Please do state in your bid that you are either very familiar with these programs, or that you have succesfully installed Openmaint or CMDBuild before.
Thank you.





broken image