Deployment
In order to deploy cmdb schema please make use of the code located in indigo cmdb repository indigo-dc/cmdb
:
https://github.com/indigo-dc/cmdb
System requirements:
nodejs
npm
After cloning the repository please install the package:
npm install
Configuration
In order to configure database location please edit config.js
file. The format is pretty self explanatory. Sample configuration is attached below:
exports.url = "http://username:password@host:5984/dbname"
Schema definition
To edit the schema itself navigate to schemas
folder and make neccessary changes. Sample schema definitions should look like:
image.js
module.exports = {
type: "object",
additionalProperties: true,
list: {
filters: {
image_name: ["image_name"],
service: ["service"]
},
value: {
image_id: "image_id",
image_name: "image_name"
}
},
belongs_to: [{
type: 'service',
many_name: 'images',
foreign_key: 'service',
value: {
image_id: "image_id",
image_name: "image_name",
service: "service"
}
}],
properties: {
image_id: {
type: "string",
required: true
},
image_name: {
type: "string",
required: true
},
architecture: {
type: "string",
required: false
},
type: {
type: "string",
required: false
},
distribution: {
type: "string",
required: false
},
version: {
type: "string",
required: false
},
service: {
type: "string",
required: true
}
}
}
provider.js
module.exports = {
type: "object",
additionalProperties: true,
list: {
filters: {
name: "name"
},
value: {
name: "name"
}
},
has_many: [
{ name: 'services', type: 'service' }
],
}
service.js
module.exports = {
type: "object",
additionalProperties: true,
list: {
filters: {
sitename: ["sitename"],
type: ["type"],
sitename_type: ["sitename", "type"],
provider_id: ["provider_id"]
},
value: {
sitename: "sitename",
provider_id: "provider_id",
hostname: "hostname",
type: "type"
}
},
has_many: [
{ name: 'images', type: 'image' }
],
belongs_to: [{
type: 'provider',
many_name: 'services',
foreign_key: 'provider_id',
value: {
sitename: "sitename",
provider_id: "provider_id",
hostname: "hostname",
type: "type"
}
}],
properties: {
type: {
type: "string",
required: true
},
provider_id: {
type: "string",
required: false
}
}
}
Deployment execution
When the configuration is ready, one can deploy CMDB by running following command
node index.js
Last updated