stoney conductor: OpenLDAP directory data organisation

From stoney cloud
Jump to: navigation, search

Contents

Virtualization

The sub tree ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains all the information for the stoney cloud. With this information we can build and operate a multi node environment for a virtual desktop and server infrastructure.

Authentication (Authentication Realms)

The sub tree ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org stores all the authentication realms for the virtual desktop- and server-infrstructure.

dn: ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: authentication
description: This sub tree contains all the authentication realm data for the virtualization environment.
Current

As of the current stoney cloud version, the authentication realms have changed to reflect the new login process. The obsolete configuration was only suitable for static desktops and servers where as the new configuration works with static and dynamic VM-Pools as well static and dynamic Virtual Machines.

The following example shows a working authentication realm:

dn: ou=4000013,ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPAuthenticationProvider
objectclass: sstRelationship
ou: 4000013
description: This is the customer virtual machines authentication realm.
sstDisplayName: Customer Virtual Machines
sstLDAPExternalDirectory: FALSE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
User Search

This entry is used to check, if the user trying to log into the system, actually exists in the directory. The placeholder %s is replaced by the users login name.

dn: ou=User Search,ou=4000013,ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPSearchObjectClass
objectclass: sstRelationship
ou: User Search
description: This is the "User Search" Bind-DN which is needed to search for the given user in the LDAP directory.
sstDisplayName: "User Search" Bind-DN
sstLDAPBaseDn: ou=people,dc=stoney-cloud,dc=org
sstLDAPFilter: (&(objectClass=sstPerson)(cn=%s))
sstLDAPForeignStaticAttribute: uid
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Example search:

ldapsearch -D "cn=Manager,dc=stoney-cloud,dc=org" -w admin -H "ldap://10.1.130.14:389" -b "ou=people,dc=stoney-cloud,dc=org"  "(&(objectClass=sstPerson)(cn=eichi))" uid
# extended LDIF
#
# LDAPv3
# base <ou=people,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstPerson)(cn=eichi))
# requesting: uid 
#

# 4000003, people, stoney-cloud.org
dn: uid=4000003,ou=people,dc=stoney-cloud,dc=org
uid: 4000003

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
User Authentication

Check the given username and password combination. The placeholder %s is replaced by the users login name.

###################################################################################################
# Attention:
#  Normally, the sstLDAPAuthUserBind is set to TRUE, meaning, the users credentials are used. In
#  some cases, it can make sense, that the Manager checks the credentials. In this case,
#  sstLDAPAuthUserBind is set to FALSE and sstLDAPBindDn as well as sstLDAPBindPassword are both
#  taken from the parent leaf.
###################################################################################################
dn: ou=User Authentication,ou=4000013,ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPAuthenticationObjectClass
objectclass: sstRelationship
ou: User Authentication
description: This is the users authentication Bind-DN which is needed to verify the credentials of the given user in the LDAP directory.
sstDisplayName: "User Authentication" Bind-DN
sstLDAPAuthUserBind: TRUE
sstLDAPAuthUserBindDn: uid=%s,ou=people,dc=stoney-cloud,dc=org
sstLDAPAuthUserPasswordAttribute: userPassword
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Example search:

ldapsearch -D "uid=4000003,ou=people,dc=stoney-cloud,dc=org" -W -H "ldap://10.1.130.14:389" -b "uid=4000003,ou=people,dc=stoney-cloud,dc=org"  "(&(objectClass=sstPerson)(cn=eichi))"
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <uid=4000003,ou=people,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstPerson)(cn=eichi))
# requesting: ALL
#

# 4000003, people, stoney-cloud.org
dn: uid=4000003,ou=people,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstPerson
givenName: Michael
mail: michael.eichenberger@stepping-stone.ch
preferredLanguage: en-GB
sstGender: m
sstBelongsToCustomerUID: 4000001
sstTimeZoneOffset: UTC+01
sn: Eichenberger
uid: 4000003
userPassword:: e1NIQX15ZStZbFJlWG1QQUR3aENLMStjazVUQXp5dVk9
cn: eichi
mobile: +41 76 392 36 23
sstBelongsToResellerUID: 4000000
telephoneNumber: +41 31 332 53 63
sstGroupUID: 4000014

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
User Group Search

This entry describes, how to look for the groups the user belongs to. The placeholder %s is replaced by the users login name.

dn: ou=User Group Search,ou=4000013,ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPSearchObjectClass
objectclass: sstRelationship
ou: User Group Search
description: This is the "User Group Search", which is needed to search for all the groups, the given user belongs to.
sstDisplayName: Group Search
sstLDAPBaseDn: ou=people,dc=stoney-cloud,dc=org
sstLDAPFilter: (&(objectClass=sstPerson)(uid=%s))
sstLDAPReturnAttribute: sstGroupUID
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Example search:

ldapsearch -D "cn=Manager,dc=stoney-cloud,dc=org" -w admin -H "ldap://10.1.130.14:389" -b "ou=people,dc=stoney-cloud,dc=org"  "(&(objectClass=sstPerson)(cn=eichi))" sstGroupUID
# extended LDIF
#
# LDAPv3
# base <ou=people,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstPerson)(cn=eichi))
# requesting: sstGroupUID 
#

# 4000003, people, stoney-cloud.org
dn: uid=4000003,ou=people,dc=stoney-cloud,dc=org
sstGroupUID: 4000014
sstGroupUID: 4000015

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Group Search (used in case of external directory)

This entry describes, how to look for all the existing groups in the foreign directory:

dn: ou=Group Search,ou=4000013,ou=authentication,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPSearchObjectClass
objectclass: sstRelationship
ou: Group Search
description: This is the "Group Search", which is needed to search for all existing groups in the foreign directory.
sstDisplayName: Group Search
sstLDAPBaseDn: ou=groups,dc=stoney-cloud,dc=org
sstLDAPFilter: (&(objectClass=sstGroupObjectClass)(uid=*))
sstLDAPForeignGroupDisplayName: sstGroupName
sstLDAPForeignStaticAttribute: uid
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Example search:

ldapsearch -D "cn=Manager,dc=stoney-cloud,dc=org" -w admin -H "ldap://10.1.130.14:389" -b "ou=groups,dc=stoney-cloud,dc=org"  "(&(objectClass=sstGroupObjectClass)(uid=*))" sstGroupName uid
# extended LDIF
#
# LDAPv3
# base <ou=groups,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstGroupObjectClass)(uid=*))
# requesting: sstGroupName uid 
#

# 4000014, groups, stoney-cloud.org
dn: uid=4000014,ou=groups,dc=stoney-cloud,dc=org
uid: 4000014
sstGroupName: Technology

# 4000015, groups, stoney-cloud.org
dn: uid=4000015,ou=groups,dc=stoney-cloud,dc=org
uid: 4000015
sstGroupName: Office

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2
Working example for an external authentication

The following working example needs the stoney cloud Version 1.0.1rc3 or newer. Working example configuration from Christian Wittkowski using his internal directory for the stoney cloud and our external directory for authentication:

dn: ou=4000014,ou=authentication,ou=virtualization,ou=services,dc=devroom,dc
 =de
objectClass: top
objectClass: organizationalUnit
objectClass: labeledURIObject
objectClass: sstLDAPAuthenticationProvider
objectClass: sstRelationship
ou: 4000014
sstBelongsToCustomerUID: 4000001
sstBelongsToResellerUID: 4000000
description: This is the customer virtual machines authentication realm.
labeledURI: ldap://192.168.140.13:389
sstDisplayName: Customer Virtual Machines
sstLDAPBindDn: cn=Manager,dc=stoney-cloud,dc=org
sstLDAPBindPassword:: YWRtaW4=
sstLDAPExternalDirectory: TRUE

dn: ou=Group Search,ou=4000014,ou=authentication,ou=virtualization,ou=servic
 es,dc=devroom,dc=de
objectClass: top
objectClass: organizationalUnit
objectClass: labeledURIObject
objectClass: sstLDAPSearchObjectClass
objectClass: sstRelationship
ou: Group Search
sstBelongsToCustomerUID: 4000001
sstBelongsToResellerUID: 4000000
sstLDAPBaseDn: ou=groups,dc=stoney-cloud,dc=org
description: This is the "Group Search", which is needed to search for all e
 xisting groups in the foreign directory.
sstDisplayName: Group Search
sstLDAPFilter: (&(objectClass=sstGroupObjectClass)(uid=*))
sstLDAPForeignGroupDisplayName: sstGroupName
sstLDAPForeignStaticAttribute: uid

dn: ou=User Authentication,ou=4000014,ou=authentication,ou=virtualization,ou
 =services,dc=devroom,dc=de
objectClass: top
objectClass: organizationalUnit
objectClass: labeledURIObject
objectClass: sstLDAPAuthenticationObjectClass
objectClass: sstRelationship
ou: User Authentication
sstBelongsToCustomerUID: 4000001
sstBelongsToResellerUID: 4000000
sstLDAPAuthUserBind: TRUE
sstLDAPAuthUserBindDn: uid=%s,ou=people,dc=stoney-cloud,dc=org
sstLDAPAuthUserPasswordAttribute: userPassword
description: This is the users authentication Bind-DN which is needed to ver
 ify the credentials of the given user in the LDAP directory.
sstDisplayName: "User Authentication" Bind-DN

dn: ou=User Group Search,ou=4000014,ou=authentication,ou=virtualization,ou=s
 ervices,dc=devroom,dc=de
objectClass: top
objectClass: organizationalUnit
objectClass: labeledURIObject
objectClass: sstLDAPSearchObjectClass
objectClass: sstRelationship
ou: User Group Search
sstBelongsToCustomerUID: 4000001
sstBelongsToResellerUID: 4000000
sstLDAPBaseDn: ou=people,dc=stoney-cloud,dc=org
description: This is the "User Group Search", which is need to search for al
 l the groups, the given user belongs to.
sstDisplayName: Group Search
sstLDAPFilter: (&(objectClass=sstPerson)(uid=%s))
sstLDAPReturnAttribute: sstGroupName

dn: ou=User Search,ou=4000014,ou=authentication,ou=virtualization,ou=service
 s,dc=devroom,dc=de
objectClass: top
objectClass: organizationalUnit
objectClass: labeledURIObject
objectClass: sstLDAPSearchObjectClass
objectClass: sstRelationship
ou: User Search
sstBelongsToCustomerUID: 4000001
sstBelongsToResellerUID: 4000000
sstLDAPBaseDn: ou=people,dc=stoney-cloud,dc=org
description: This is the "User Search" Bind-DN which is needed to search for the given user in the LDAP directory.
sstDisplayName: "User Search" Bind-DN
sstLDAPFilter: (&(objectClass=sstPerson)(cn=%s))
sstLDAPForeignStaticAttribute: uid 
sstLDAPInternalForeignMapping: givenName:givenName
sstLDAPInternalForeignMapping: sn:sn
sstLDAPInternalForeignMapping: mail:mail

Configuration

The subtree ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the configuration information of the stoney cloud. This sub tree is populated during the installation of the first stoney cloud node:

  • Demo-System: Lets you quickly install and test the stoney cloud on a single physical machine without any further network requirements.
  • Single-Node-Installation: This option lets you run the stoney cloud on a single physical machine without any high availability.
  • Multi-Node-Installation: The high availability version requires al least four physical machines.
dn: ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: configuration
description: This sub tree contains the configuration information of the stoney cloud.
Backup

The sub tree ou=backup,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the default backup plan for the whole stoney cloud installation (since version 1.2.0).

# The following backup configuration says, that the backup should be done daily, at 03:00 hours (localtime).
# *     *     *   *    *        command to be executed
# -     -     -   -    -
# |     |     |   |    |
# |     |     |   |    +----- day of week (0 - 6) (Sunday=0)
# |     |     |   +------- month (1 - 12)
# |     |     +--------- day of        month (1 - 31)
# |     +----------- hour (0 - 23)
# +------------- min (0 - 59)
# localtime in the crontab entry
dn: ou=backup,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=orgpools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationBackupObjectClass
objectclass: sstCronObjectClass
ou: backup
description: This sub tree contains the default backup plan of the stoney cloud.
sstCronMinute: 0
sstCronHour: 3
sstCronDay: *
sstCronMonth: *
sstCronDayOfWeek: *
sstCronActive: TRUE
sstBackupRootDirectory: file:///var/backup/virtualization
sstBackupRetainDirectory: file:///var/virtualization/retain
sstBackupRamDiskLocation: file:///var/cache/kvmbackup
sstVirtualizationDiskImageFormat: qcow2
sstVirtualizationDiskImageOwner: root
sstVirtualizationDiskImageGroup: vm-storage
sstVirtualizationDiskImagePermission: 660
sstVirtualizationDiskImageDirectoryOwner: root
sstVirtualizationDiskImageDirectoryGroup: vm-storage
sstVirtualizationDiskImageDirectoryPermission: 770
sstBackupNumberOfIterations: 1
sstVirtualizationVirtualMachineForceStart: FALSE
sstVirtualizationBandwidthMerge: 0

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
ou
MUST
x
...


Legend:

  • x: Mandatory in all cases.
Internal Searches

The sub tree ou=internal searches,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the internal ldap searches configuration of the stoney cloud installation.

Networks

The ideal stoney cloud environment is based on four logical separated VLANs (virtual LANs):

  • admin: Administrative network, used for administration and monitoring purposes.
  • data: Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic.
  • int: Internal network, used for internal traffic such as LDAP, libvirt and more.
  • pub: Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access.

The sub tree ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the services configuration information of the stoney cloud (since version 0.8.0).

dn: ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: networks
description: This subtree contains the networks configuration information of the stoney cloud.

Each VLAN (network) mentioned above has it's own subtree. The naming is in the form of ou=VLAN-name. The VLAN subtree contains information about the VALN (network) and the services running therein. Administrative network, used for administration and monitoring purposes:

dn: ou=admin,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetwork
ou: admin
description: Administrative network, used for administration and monitoring purposes.
sstNetworkVLANId: 1799
sstNetworkPrefix: 192.168.17.0/24
sstNetworkDefaultGateway: 192.168.17.1
sstNetworkBroadcastAddress: 192.168.17.255
sstNetworkDomainName: admin.stoney-cloud.org

The service(s) running are named in the form of sstName=Service. The following example shows the OpenSSH daemon, which is needed for remote administration.

# sshd: OpenSSH is used for remote management and access.
dn: sstService=sshd,ou=admin,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: sshd
description: OpenSSH is used for remote management and access.
sstDisplayName: OpenSSH daemon

# zabbix-agent: The ZABBIX-agent is used for monitoring purposes.
dn: sstService=zabbix-agent,ou=admin,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: zabbix-agent
description: The ZABBIX-agent is used for monitoring purposes.
sstDisplayName: ZABBIX

Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic:

dn: ou=data,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetwork
ou: data
description: Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic.
sstNetworkVLANId: 1797
sstNetworkPrefix: 10.17.97.0/24
sstNetworkDefaultGateway: 10.17.97.1
sstNetworkBroadcastAddress: 10.17.97.255
sstNetworkDomainName: data.stoney-cloud.org

# glusterd: The GlusterFS File service is used as the virtual machine storage.
dn: sstService=glusterd,ou=data,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: glusterd
description: The GlusterFS File service is used as the virtual machine storage.
sstDisplayName: GlusterFS File Service
sstNetworkVirtualIPAdress: 10.17.97.87
sstNetworkVirtualHostname: glusterfs

Internal network, used for internal traffic such as LDAP, libvirt and more:

dn: ou=int,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetwork
ou: int
description: Internal network, used for internal traffic such as LDAP, libvirt and more.
sstNetworkVLANId: 1798
sstNetworkPrefix: 10.17.98.0/24
sstNetworkDefaultGateway: 10.17.98.1
sstNetworkBroadcastAddress: 10.17.98.255
sstNetworkDomainName: int.stoney-cloud.org

# libvirtd: The libvirtd daemon is used for the administration of the virtual servers.
dn: sstService=libvirtd,ou=int,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: libvirtd
description: The libvirtd daemon is used for the administration of the virtual servers.
sstDisplayName: libvirtd Service

# slapd: The OpenLDAP directory is used for the storage of all service related data.
dn: sstService=slapd,ou=int,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: slapd
description: The OpenLDAP directory is used for the storage of all service related data.
sstDisplayName: OpenLDAP Service
sstNetworkVirtualIPAdress: 10.17.98.87
sstNetworkVirtualHostname: ldapm

Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access:

dn: ou=pub,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetwork
ou: pub
description: Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access.
sstNetworkVLANId: 1701
sstNetworkPrefix: 31.216.40.0/24
sstNetworkDefaultGateway: 31.216.40.1
sstNetworkBroadcastAddress: 31.216.40.255
sstNetworkDomainName: test.stoney-cloud.org
sstNetworkNTPHost: 0.ch.pool.ntp.org
sstNetworkNTPHost: 1.ch.pool.ntp.org
sstNetworkNTPHost: 2.ch.pool.ntp.org
sstNetworkNTPHost: 3.ch.pool.ntp.org
sstNetworkDNSHost: 194.176.109.202
sstNetworkDNSHost: 212.103.77.109

# apache2: The Apache web server is used for the VM-Manager web interface.
dn: sstService=apache2,ou=pub,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: apache2
description: The Apache web server is used for the VM-Manager web interface.
sstNetworkVirtualHostname: vm-manager
sstDisplayName: VM-Manager Service

# dhcpd: The DHCP server is used for the distribution of IP addresses.
dn: sstService=dhcpd,ou=pub,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: dhcpd
description: The DHCP server is used for the distribution of IP addresses.
sstNetworkVirtualHostname: dhcpd
sstDisplayName: DHCP Service

# qemu-system-x86_64: The QEMU (spice) service is used for the interaction with virtualized desktop devices.
dn: sstService=qemu-system-x86_64,ou=pub,ou=networks,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: qemu-system-x86_64
description: The QEMU (spice) service is used for the interaction with virtualized desktop devices.
sstNetworkVirtualHostname: vm-manager
sstDisplayName: QEMU (spice) Service
Node-Types

The stoney cloud consists of different versions. Each version has different possible node types:

  • Single-Node-Installation:
    • Demo-System: This node type is a special single-node installation and is used for demo purposes only.
      • KVM: The node subtype KVM.
  • Multi-Node-Installation:
    • Primary-Master-Node: This is the first node of a multi-node installation.
      • KVM: The node subtype KVM.
    • Secondary-Master-Node: This is the second node of a multi-node installation.
      • KVM: The node subtype KVM.
    • VM-Node: The VM-Node is used to run the actual virtual machines (VM's).
      • KVM: The node subtype KVM.
    • Storage-Node: The Storage-Node is used to store all the images (VM-Profiles, VM-Templates and VMs).
      • GlusterFS: The node subtype GlusterFS.
      • Ceph: The node subtype Ceph (could come later).

The subtree ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the node-types configuration information of the stoney cloud (since version 0.8.0).

dn: ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: networks
description: This subtree contains the node-types configuration information of the stoney cloud.

The Demo-System node type is a special single-node installation and is used for demo purposes only and is used in the Single-Node-Installation.

dn: sstNodeType=Demo-System,ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Demo-System
sstNodeSubtype: KVM
sstService: sshd
sstService: zabbix-agent
sstService: libvirtd
sstService: slapd
sstService: apache2
sstService: qemu-system-x86_64
description: This node type is a special single-node installation and is used for demo purposes only.
sstDisplayName: Demo System

The Primary-Master-Node is the first node of a Multi-Node-Installation.

dn: sstNodeType=Primary-Master-Node,ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Primary-Master-Node
sstNodeSubtype: KVM
sstService: sshd
sstService: zabbix-agent
sstService: libvirtd
sstService: slapd
sstService: apache2
sstService: qemu-system-x86_64
description: This is the first node of a multi-node installation.
sstDisplayName: Primary-Master-Node

The Secondary-Master-Node is the second node of a Multi-Node-Installation.

dn: sstNodeType=Secondary-Master-Node,ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Secondary-Master-Node
sstNodeSubtype: KVM
sstService: sshd
sstService: zabbix-agent
sstService: libvirtd
sstService: slapd
sstService: apache2
sstService: qemu-system-x86_64
description: This is the second node of a multi-node installation.
sstDisplayName: Secondary-Master-Node

The VM-Node is used to run the actual virtual machines (VM's) in a Multi-Node-Installation.

dn: sstNodeType=VM-Node,ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: VM-Node
sstNodeSubtype: KVM
sstService: sshd
sstService: zabbix-agent
sstService: libvirtd
sstService: qemu-system-x86_64
description: The VM-Node is used to run the actual virtual machines (VM's).
sstDisplayName: VM-Node

The Storage-Node is used to store all the images (VM-Profiles, VM-Templates and VMs) in a Multi-Node-Installation.

dn: sstNodeType=Storage-Node,ou=node-types,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Storage-Node
sstNodeSubtype: GlusterFS
sstService: sshd
sstService: zabbix-agent
sstService: glusterd
description: The Storage-Node is used to store all the images (VM-Profiles, VM-Templates and VMs).
sstDisplayName: Storage-Node
Settings

The sub tree ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This entry contains some default settings for the whole stoney cloud (since version 1.2.0).
dn: ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: settings
description: This sub tree contains some default settings for the whole stoney cloud.
Hostname

The sub tree ou=hostname,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org defines pre-formated hostnames in the form of kvm-%04d. Together with the domain name, this gives you kvm-0000.example.org to kvm-9999.example.org. This is implemented in version 1.2.0 in the OpenLDAP directory. The vm-manager will be updated in version 1.4.0).

# This is where the global hostname related settings for the stoney cloud environment are stored.
dn: ou=hostname,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstHostnameDefinitionObjectClass
ou: hostname
description: This sub tree defines pre-formated hostnames in the form of kvm-%04d. Together with the domain name, this gives you kvm-0000.example.org to kvm-9999.example.org.
sstNetworkDomainName: example.org
sstNetworkHostnameFormat: kvm-%04d
sstNetworkHostnameNextFreeNumber: 1
RDP

The sub tree ou=rdp,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the RDP related default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This is where the global RDP related settings for the stoney cloud environment are stored.
dn: ou=rdp,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationSettingsObjectClass
ou: rdp
description: This sub tree contains the RDP related default settings for the whole stoney cloud.
sstAllowRDP: FALSE
Sound

The sub tree ou=sound,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the Sound related default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This is where the global Sound related settings for the stoney cloud environment are stored.
dn: ou=sound,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationSettingsObjectClass
ou: sound
description: This sub tree contains the Sound related default settings of the stoney cloud.
sstAllowSound: TRUE
Spice

The sub tree ou=spice,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the Spice related default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This is where the global Spice related settings for the stoney cloud environment are stored.
dn: ou=spice,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationSettingsObjectClass
ou: spice
description: This sub tree contains the Spice related default settings of the stoney cloud.
sstAllowSpice: TRUE
sstSpicePortMin: 5900
sstSpicePortMax: 5999
USB

The sub tree ou=usb,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the USB related default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This is where the global USB related settings for the stoney cloud environment are stored.
dn: ou=usb,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationSettingsObjectClass
ou: usb
description: This sub tree contains the USB related default settings of the stoney cloud.
sstAllowUSB: FALSE
VNC

The sub tree ou=vnc,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the VNC related default settings for the whole stoney cloud installation (since version 1.2.0). They can be changed by the administrator.

# This is where the global VNC related settings for the stoney cloud environment are stored.
dn: ou=vnc,ou=settings,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationSettingsObjectClass
ou: vnc
description: This sub tree contains the VNC related default settings of the stoney cloud.
sstAllowVNC: FALSE
Storage Pools

The stoney cloud environment has the following storage pools

  • catalogue: This is where the global VM-Templates of the stoney cloud environment are stored. These can be used as a base for users VM-Templates.
  • iso: This is where ISO-files of the stoney cloud environment are stored.
  • iso-choosable: This is where the user uploads his or her ISO-files into the stoney cloud environment.
  • vm-dynamic: This is where the dynamic VM's of the stoney cloud environment are stored.
  • vm-persistent: This is where the static VM's of the stoney cloud environment are stored.
  • vm-templates: This is where the VM-Templates of the stoney cloud environment are stored.

The sub tree ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the storage pools configuration information of the stoney cloud.

The attribure sstStoragePoolType can consist of one of the following values:

  • catalogue: Read only storage pool, used for the global VM-Templates of the stoney cloud environment
  • dynamic: Storage pool for the dynamic VM's.
  • iso: Read only storage pool for the ISO-files.
  • static: Storage pool for the static VM's.
  • template: Storage pool for the VM-Templates.

The catalogue entry is defined as follows:

dn: ou=catalogue,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: catalogue
sstStoragePoolURI: file:///var/virtualization/catalogue
sstStoragePoolType: catalogue

The iso entry is defined as follows:

dn: ou=iso,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: iso
sstStoragePoolURI: file:///var/virtualization/iso
sstStoragePoolType: iso

The iso-choosable entry is defined as follows:

dn: ou=iso-choosable,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: iso-choosable
sstStoragePoolURI: file:///var/virtualization/iso-choosable
sstStoragePoolType: iso

The vm-dynamic entry is defined as follows:

dn: ou=vm-dynamic,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: vm-dynamic
sstStoragePoolURI: file:///var/virtualization/vm-dynamic
sstStoragePoolType: dynamic

The vm-persistent entry is defined as follows:

dn: ou=vm-persistent,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: vm-persistent
sstStoragePoolURI: file:///var/virtualization/vm-persistent
sstStoragePoolType: static

The vm-templates entry is defined as follows:

dn: ou=vm-templates,ou=storage pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstStoragePoolConfigurationObjectClass
ou: vm-templates
sstStoragePoolURI: file:///var/virtualization/vm-templates
sstStoragePoolType: template
Version

The entry ou=version,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the version UUID of the stoney cloud installation.

Virtual Machine Pools

The stoney cloud environment has a Broker (Daemon), which is responsible for the proper distribution of virtual machines in the stoney cloud installation. This broker needs to be configured globally (distribution algorithm) and locally for each virtual machine pool . The distribution algorithm is stored in the attribute sstBrokerAlgorithm and can have one of the following values:

  • load: The distribution of virtual machines is based on the cpu load, memory usage and disk input/output of the VM-Nodes. This option is not implemented and planned for the near future.
  • quantity: The distribution of virtual machines is based on the number of virtual machines running on the VM-Nodes.

The entry ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains the virtual machine pools configuration information of the stoney cloud and has the distribution algorithm set to quantity (which is the default value for the near future):

dn: ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualMachinePoolBrokerConfigurationObjectClass
ou: virtual machine pools
sstBrokerAlgorithm: quantity

Below the sub tree ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org we have the following virtual machine pool configurations:

  • dynamic: This is where the definitions of the dynamic virtual machine pools of the stoney cloud environment are stored.
    • sstBrokerMinimalNumberOfVirtualMachines: The minimal number of virtual machines as an integer value, that need to pre started in a dynamic virtual machine pool through the broker (for example: 5).
    • sstBrokerMaximalNumberOfVirtualMachines: The maximal number of virtual machines as an integer value, that are allowed to be started through the broker in a dynamic virtual machine pool (for example: 50).
    • sstBrokerPreStartNumberOfVirtualMachines: The number of virtual machines as an integer value, that need to pre started in a dynamic virtual machine pool through the broker (for example: 3).
  • static: This is where the definitions of the static (persistent) virtual machine pools of the stoney cloud environment are stored.
  • template: This is where the definitions of the template virtual machine pools of the stoney cloud environment are stored.

The dynamic entry is defined as follows. It presumes that we should have a minimal number of 5 virtual machines runnning at all time. We need to pre start 3 virtual machines and we can have a maximum number of 20 virtual machines:

dn: ou=dynamic,ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualMachinePoolConfigurationObjectClass
ou: dynamic
sstBrokerMinimalNumberOfVirtualMachines: 5
sstBrokerMaximalNumberOfVirtualMachines: 20
sstBrokerPreStartNumberOfVirtualMachines: 3

The static entry is defined as follows:

dn: ou=static,ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: static

The template entry is defined as follows:

dn: ou=template,ou=virtual machine pools,ou=configuration,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: template

Networks (Network-Pools)

Im Subtree ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org werden die Network-Pools für die virtuelle Desktop- und Server-Infrastruktur abgebildet. Pro Network-Pool gibt es zwei verschiede IP-Range Typen:

  • Statischer IP-Range (es werden den VM's fixe IP-Adressen manuell via VM-Manager Web-Interface verteilt)
  • Dynamischer IP-Range (die IP-Adressen werden vom VM-Manager automatisch verteilt)

Aus Sicht des DHCP-Servers sind alle IP-Addressen statisch (fix). Der VM-Manager soll den gesammten Lifecycle einer virtuellen Maschine unter seiner Hoheit haben.

Das nachfolgende LDIF zeigt den Subtree ou=networks,ou=virtualization,ou=services,o=stepping-stone,c=ch:

dn: ou=networks,ou=virtualization,ou=services,o=stepping-stone,c=ch
description: This subtree contains the network pools for the virtualization environment.
objectclass: top
objectclass: organizationalUnit
ou: networks
dn: ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: dhcp
Networks (Network-Pools): DHCP-Server

Das nachfolgende LDIF zeigt den Eintrag vom ersten DHCP-Server cn=dhcp-01.stepping-stone.ch,ou=networks,ou=virtualization,ou=services,o=stepping-stone,c=ch:

dn: cn=dhcp-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: dhcpServer
cn: dhcp-01
dhcpServerDN: cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org

Mit dem Attribut dhcpServerDN wird auf die dazugehörige DHCP-Konfiguration verwiesen.

Networks (Network-Pools): DHCP-Konfiguration

Der Eintrag cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org ist gleichzeitig ein Subtree sowie ein normales Leaf.

Der nachfolgen LDIF-Auszug zeigt die DHCP-Konfiguration auf der im DHCP-Server dhcp-01.stepping-stone.ch verwiesen wird:

dn: cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: dhcpService
cn: config-01
dhcpPrimaryDN: cn=dhcp-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org

Mit dem Attribut dhcpPrimaryDN wird auf den ersten (primary) DHCP-Server referenziert.

Networks (Network-Pools): Network-Pool (Example with network-pool-01)

Auf dem DHCP-Server dhcp-01 ist ein erster Netzwork-Pool konfiguriert:

dn: cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: dhcpSubnet
objectclass: dhcpOptions
objectclass: sstVirtualizationNetwork
cn: 172.31.255.0
sstDisplayName: network-pool-01
description: This is the first network for which the DHCP server is responsible. All default DHCP options and statements are defined within this entry.
dhcpnetmask: 24
dhcpoption: domain-name "example.com"
dhcpoption: domain-name-servers 172.31.255.1
dhcpoption: routers 172.31.255.1
dhcpoption: broadcast-address 172.31.255.255
dhcpoption: ip-forwarding false
dhcpoption: ntp-servers 0.ch.pool.ntp.org,1.ch.pool.ntp.org,2.ch.pool.ntp.org
dhcpoption: router-discovery false
dhcpstatements: authoritative
dhcpstatements: default-lease-time 3600
dhcpstatements: min-lease-time 600
dhcpstatements: max-lease-time 43200
dhcpstatements: ddns-update-style none
dhcpstatements: ddns-updates off
dhcpstatements: ping-check false
sstNetfilterInterfaceAlias: pub
sstSourceBridge: vmbr0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Der LDIF-Auszug liest sich wie folgt:

AttributeType Existence Mandatory Description Changeable via Web-Interface
cn: 194.176.109.64
MUST
x
Netz-Adresse (erste IP-Adresse vom gewünschten Netz-Block). ja (erst ab Version 0.8.0)
dhcpNetMask: 26
MUST
x
Subnet-Mask (im CIDR-Format). ja (erst ab Version 0.8.0)
dhcpOption: routers 194.176.109.65
MAY
x
Default Gateway (in der Regel ist dies die erste freie IP-Adresse vom Netz-Block (cn+1)). ja (ab Version 0.6.3)
dhcpOption: broadcast-address 194.176.109.127
MAY
x
Broadcast (in der Regel ist dies die letzte IP-Adresse vom Netz-Block (cn). ja (ab Version 0.6.3)
dhcpOption: domain-name "stepping-stone.ch"
MAY
x
Domain Name (Default ist stepping-stone.ch, andere Namen sind möglich). ja (ab Version 0.6.3)
dhcpOption: domain-name-servers 194.176.109.202, 195.141.111.109
MAY
x
DNS-Server(s) (die zwei IP-Adressen entsprechen ns-rec-01.stepping-stone.ch und ns-rec-02.stepping-stone.ch). ja (ab Version 0.6.3)
dhcpOption: ntp-server ntp-01.stepping-stone.ch,ntp-02.stepping-stone.ch,ntp-03.stepping-stone.ch
MAY
x
NTP-Server (die stepping stone GmbH hat aktuelle drei eigene NTP-Server im Einsatz). ja (ab Version 0.6.3)
dhcpRange: 194.176.109.117 194.176.109.120
MAY
x
DHCP-Range (hier wird die jeweils die erste und letzte IP-Adresse vom geünschten IP-Range angegeben). Es können prinzipiell mehrer DHCP-Ranges angegeben werden. Über die Verteilung der DHCP-Leases kann jedoch kein Einfluss genommen werden. nein (wird nicht verwendent, da alle IPs fix vergeben werden)
sstNetfilterInterfaceAlias: pub
MAY
x
The netfilter interface alias, for example: pub or pub2. no
sstSourceBridge: vmbr0
MAY
x
The name of the bridge (for example vmbr0). no

Dieser IP-Range ist wie folgt unterteilt:

         Development                       Office                      Customer     Internal Servers        External Servers
I--------------------------------I--------------------------------I----------------I----------------I--------------------------------I
dn: cn=172.31.255.0/26,ou=ranges,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNetworkRange
cn: 172.31.255.0/26
sstDisplayName: Development
description: This ip ranges consists the development desktops with static ip addresses.
sstNetworkType: static
dn: cn=172.31.255.64/26,ou=ranges,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNetworkRange
cn: 172.31.255.64/26
sstDisplayName: Office
description: This ip ranges consists the office desktops with dynamic ip addresses.
sstNetworkType: dynamic
dn: cn=172.31.255.128/27,ou=ranges,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNetworkRange
cn: 172.31.255.128/27
sstDisplayName: Customer
description: This ip ranges consists the customer desktops with dynamic ip addresses.
sstNetworkType: dynamic
dn: cn=172.31.255.160/27,ou=ranges,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNetworkRange
cn: 172.31.255.160/27
sstDisplayName: Internal Servers
description: This ip ranges consists the internal servers with static ip addresses.
sstNetworkType: static
dn: cn=172.31.255.192/26,ou=ranges,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNetworkRange
cn: 172.31.255.192/26
sstDisplayName: External Servers
description: This ip ranges the external servers with static ip addresses.
sstNetworkType: static
Networks (Network-Pools): Virtual Machines
dn: ou=virtual machines,cn=172.31.255.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: virtual machines
description: This subtree holds all static MAC address to IP mappings.
Networks (Network-Pools): Virtual Machine

The following LDIF entry shows the virtual machine kvm-0001.tombstone.ch with the static ip address 192.168.140.130. In the stoney cloud version 1.2.0 the entry dhcpStatements: option host-name "kvm-0001.tombstone.ch" has been added. The vm-manager will provision this entry in the next stoney cloud version 1.4.0.

dn: cn=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,cn=192.168.140.0,cn=config-01,ou=dhcp,ou=networks,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: dhcpHost
objectclass: sstVirtualizationNetwork
cn: b543f88f-dffe-426f-86d3-c7ff85c16d2a
dhcpHWAddress: ethernet 52:54:00:48:e4:1e
dhcpStatements: fixed-address 192.168.140.130
dhcpStatements: option host-name "kvm-0001.tombstone.ch"
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002

Nodes

The sub tree ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains all the nodes for the stoney cloud virtualization environment. The following LDIF extract shows the definition of the subtree.

dn: ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: nodes
description: This subtree contains all the nodes for the virtualization environment.
Example (carrier-hosting-11.test.stoney-cloud.org)

The following LDIF extract shows the example of the physical node called carrier-hosting-11.test.stoney-cloud.org. It belongs to the customer "stepping stone GmbH" (sstBelongsToCustomerUID=3723426). The customer "stepping stone GmbH" belongs to the reseller "stepping stone GmbH" (sstBelongsToResellerUID=2000000).

dn: sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationNode
objectclass: sstRelationship
objectclass: labeledURIObject
sstNode: carrier-hosting-11.test.stoney-cloud.org
description: The node carrier-hosting-11.test.stoney-cloud.org.
labeledURI: ldap:///ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org??sub?(sstNode=carrier-hosting-11.test.stoney-cloud.org)
sstBelongsToResellerUID: 2000000
sstBelongsToCustomerUID: 3723426

The same VLANs (networks) mentioned above in the chapter Networks are used here as well. The physical node needs an IP-address in each VLAN (network). The following example shows the IP-address for the physical node carrier-hosting-11.test.stoney-cloud.org with the IP-address 192.168.17.85 in the admin VLAN.

# admin: Administrative network, used for administration and monitoring purposes. 
# 192.168.17.0/24
# 192.168.17.1   Default Gateway
# 192.168.17.255 Broadcast
# VLAN: 1799

# data: Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic. 
# 10.17.97.0/24
# 10.17.97.1 Default Gateway
# 10.17.97.255 Broadcast
# VLAN: 1797

# int: Internal network, used for internal traffic such as LDAP, libvirt and more. 
# 10.17.98.0/24
# 10.17.98.1 Default Gateway
# 10.17.98.255 Broadcast
# VLAN: 1798

# pub: Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access. 
# 31.216.40.0/24
# 31.216.40.1     Default Gateway
# 31.216.40.255   Broadcast
# VLAN: 1701

The networks have their own subtree:

# networks: The subtree for the four networks.
dn: ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: networks
description: This subtree contains the network information.

The admin network:

# admin: Administrative network, used for administration and monitoring purposes. 
dn: ou=admin,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetworkNode
ou: admin
description: Administrative network, used for administration and monitoring purposes.
sstNetworkIPAddress: 192.168.17.85

# sshd: OpenSSH is used for remote management and access.
dn: sstService=sshd,ou=admin,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: sshd
description: OpenSSH is used for remote management and access.
sstDisplayName: OpenSSH daemon

The data network:

# data: Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic.
dn: ou=data,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetworkNode
ou: data
description: Data network, used for GlusterFS (in later versions NFS and Ceph as well) traffic.
sstNetworkIPAddress: 10.17.97.85
# glusterd: The GlusterFS File service is used as the virtual machine storage.
dn: sstService=glusterd,ou=data,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: glusterd
description: The GlusterFS File service is used as the virtual machine storage.
sstDisplayName: GlusterFS File Service

The internal network:

# int: Internal network, used for internal traffic such as LDAP, libvirt and more. 
dn: ou=int,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetworkNode
ou: int
description: Internal network, used for internal traffic such as LDAP, libvirt and more.
sstNetworkIPAddress: 10.17.98.85

# libvirtd: The libvirtd daemon is used for the administration of the virtual servers.
dn: sstService=libvirtd,ou=int,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: libvirtd
description: The libvirtd daemon is used for the administration of the virtual servers.
sstDisplayName: libvirtd Service

# slapd: The OpenLDAP directory is used for the storage of all service related data.
dn: sstService=slapd,ou=int,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: slapd
description: The OpenLDAP directory is used for the storage of all service related data.
sstDisplayName: OpenLDAP Primary Master
sstNetworkHostname: ldapm-01

The public network:

# pub: Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access. 
dn: ou=pub,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstNetworkNode
ou: pub
description: Public network, used for accessing the VM-Manager web interface, Spice traffic and internet access.
sstNetworkIPAddress: 31.216.40.4

# apache2: The Apache web server is used for the VM-Manager web interface.
dn: sstService=apache2,ou=pub,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: apache2
description: The Apache web server is used for the VM-Manager web interface.
sstDisplayName: VM-Manager Service
sstNetworkHostname: vm-manager

# dhcpd: The DHCP server is used for the distribution of IP addresses.
dn: sstService=dhcpd,ou=pub,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServices
sstService: dhcpd
description: The DHCP server is used for the distribution of IP addresses.
sstNetworkVirtualHostname: dhcpd
sstDisplayName: DHCP Service

# qemu-system-x86_64: The QEMU (spice) service is used for the interaction with virtualized desktop devices.
dn: sstService=qemu-system-x86_64,ou=pub,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: qemu-system-x86_64
description: The QEMU (spice) service is used for the interaction with virtualized desktop devices.
sstDisplayName: QEMU (spice) Service

# sshd: OpenSSH is used for remote management and access.
dn: sstService=sshd,ou=pub,ou=networks,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServicesNode
sstService: sshd
description: OpenSSH is used for remote management and access.
sstDisplayName: OpenSSH daemon

In our example, we have a node which actually consists of two different node types:

  • Primary-Master-Node
  • Storage-Node
# node-types: The subtree for the node type definition(s).
dn: ou=node-types,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: node-types
description: This subtree contains the node type definition(s).

# This is the first node of a multi-node installation. 
dn: sstNodeType=Primary-Master-Node,ou=node-types,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Primary-Master-Node
sstNodeSubtype: KVM
description: This is the first node of a multi-node installation.
sstDisplayName: Primary-Master-Node
sstNodeState: active

# The Storage-Node is used to store all the images (VM-Profiles, VM-Templates and VMs). 
dn: sstNodeType=Storage-Node,ou=node-types,sstNode=carrier-hosting-11.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstTypeNode
sstNodeType: Storage-Node
sstNodeSubtype: GlusterFS
description: The Storage-Node is used to store all the images (VM-Profiles, VM-Templates and VMs).
sstDisplayName: Storage-Node
sstNodeState: active


The following table explains each attribute with the possible values.

Object Class sstVirtualizationNode:

AttributeType Existence Mandatory Description Changeable via Web-Interface
sstNode: carrier-hosting-11.test.stoney-cloud.org
MUST
x
The name of a physical node. Either the Fully Qualified Domain Name (FQDN) for public clouds or just the Host Name (without the Domain part) for private clouds. Version 0.6.3 or higher.
description: The node carrier-hosting-11.test.stoney-cloud.org.
MAY
A short human readable description of the physical node. Version 0.6.3 or higher.

Object Class sstRelationship:

AttributeType
Existence
Mandatory
Description


sstBelongsToCustomerUID
MUST
x
Die UID des Kunden zu der die Node gehört.
sstBelongsToResellerUID
MUST
x
Die UID des Wiederverkäufers zu der die Node gehört.
sstBillingUID
MAY
Die Verrechnungs-UID. Je nach Verrechnungs-Modell wird diese UID benötigt oder auch nicht.
sstBelongsToPersonUID
MAY
Die UID der Person zu der die Node gehört. Es macht in der Regel keinen Sinn, eine Node einer Person zuzuweisen.

Object Class labeledURIObject:

AttributeType
Existence
Mandatory
Description
labeledURI
MAY
x
Automatische Auflistung alle virtuellen Maschinen auf diesem Node. Zum Beispiel: ldap:///ou=virtual machines,ou=virtualization,ou=services,o=stepping-stone,c=ch??sub?(sstNode=carrier-hosting-09)

Virtual Machine Pools (VM-Pools)

The virtual machine pools are stored in and below the ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org sub tree (since version 1.0.0 ou=virtual machine-pools has been renamed to ou=virtual machine pools).

dn: ou=virtual machine-pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: virtual machine-pools
description: This subtree contains the logical virtual machine pools for the virtualization environment.

Currenty (as of Version 1.0.0) we have three default virtual machine pools that are delivered with the stoney cloud:

  • VM-template Virtual Machine Pool: This is where you can start your VM-templates.
  • Static Virtual Machine Pool: This is where you can start your static virtual machines.
  • Dynamic Virtual Machine Pool: This is where you can start your dynamic virtual machines.

All three have in common, that the primary master node is included in each virtual machine pool and they all have their proper storage pool defined after the installation of the primary master node. The network range is missing in all three virtual machine pools, because we don't know these at the time of the installation of the primary master node.

VM-Template Virtual Machine Pool

The following example presumes, that your primary master node is called carrier-hosting-12.test.stoney-cloud.org:

dn: sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualMachines
objectclass: sstRelationship
sstVirtualMachinePool: 40fac639-c69d-43b0-817c-dbbf3fd161fc
sstDisplayName: vm-template-virtual-machine-pool-01
description: This is the default vm-template virtual machine pool vm-template-virtual-machine-pool-01.
sstVirtualMachinePoolType: template
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=nodes,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: nodes
description: This sub tree stores all the nodes belonging to default vm-template virtual machine pool vm-template-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: carrier-hosting-12.test.stoney-cloud.org
description: This entry links to the node carrier-hosting-12.test.stoney-cloud.org.
labeledURI: ldap:///sstNode=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=storage pools,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: storage pools
description: This sub tree stores all the storage pools belonging to default vm-template virtual machine pool vm-template-virtual-machine-pool-01 (normally just one storage pool).
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=5b77d2f6-061f-410c-8ee7-9e61da6f1927,ou=storage pools,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: 5b77d2f6-061f-410c-8ee7-9e61da6f1927
description: This entry links to the vm-template storage pool 5b77d2f6-061f-410c-8ee7-9e61da6f1927.
labeledURI: ldap:///sstStoragePool=5b77d2f6-061f-410c-8ee7-9e61da6f1927,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=ranges,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: ranges
description: This sub tree stores all the ranges belonging to default vm-template virtual machine pool vm-template-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=virtual machines,sstVirtualMachinePool=40fac639-c69d-43b0-817c-dbbf3fd161fc,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: virtual machines
description: This sub tree stores all the virtual machines belonging to default vm-template virtual machine pool vm-template-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
Static Virtual Machine Pool

The following example presumes, that your primary master node is called carrier-hosting-12.test.stoney-cloud.org:

dn: sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualMachines
objectclass: sstRelationship
sstVirtualMachinePool: d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa
sstDisplayName: static-virtual-machine-pool-01
description: This is the default static virtual machine pool static-virtual-machine-pool-01.
sstVirtualMachinePoolType: static
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=nodes,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: nodes
description: This sub tree stores all the nodes belonging to default static virtual machine pool static-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: carrier-hosting-12.test.stoney-cloud.org
description: This entry links to the node carrier-hosting-12.test.stoney-cloud.org.
labeledURI: ldap:///sstNode=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=storage pools,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: storage pools
description: This sub tree stores all the storage pools belonging to default static virtual machine pool static-virtual-machine-pool-01 (normally just one storage pool).
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=0f83f084-8080-413e-b558-b678e504836e,ou=storage pools,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: 0f83f084-8080-413e-b558-b678e504836e
description: This entry links to the vm storage pool 0f83f084-8080-413e-b558-b678e504836e.
labeledURI: ldap:///sstStoragePool=0f83f084-8080-413e-b558-b678e504836e,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=ranges,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: ranges
description: This sub tree stores all the ranges belonging to default static virtual machine pool static-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=virtual machines,sstVirtualMachinePool=d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: virtual machines
description: This sub tree stores all the virtual machines belonging to default static virtual machine pool static-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
Dynamic Virtual Machine Pool

The following example presumes, that your primary master node is called carrier-hosting-12.test.stoney-cloud.org. In a fully configures dynamic virtual machine pool with an active Golden-Image, we would have the sstActiveGoldenImage: UUID entry (UUID would be replaced by the proper Universally Unique Identifier of the Golden-Image) directly in the sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=vi... entry:

dn: sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualMachines
objectclass: sstVirtualMachinePoolDynamicObjectClass
objectclass: sstRelationship
sstVirtualMachinePool: dbd81080-d9f8-42e2-a261-d56b80c9c528
sstDisplayName: dynamic-virtual-machine-pool-01
description: This is the default dynamic virtual machine pool dynamic-virtual-machine-pool-01.
sstVirtualMachinePoolType: dynamic
sstBrokerMinimalNumberOfVirtualMachines: 5
sstBrokerMaximalNumberOfVirtualMachines: 20
sstBrokerPreStartNumberOfVirtualMachines: 3
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=nodes,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: nodes
description: This sub tree stores all the nodes belonging to default dynamic virtual machine pool dynamic-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: carrier-hosting-12.test.stoney-cloud.org
description: This entry links to the node carrier-hosting-12.test.stoney-cloud.org.
labeledURI: ldap:///sstNode=carrier-hosting-12.test.stoney-cloud.org,ou=nodes,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=storage pools,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: storage pools
description: This sub tree stores all the storage pools belonging to default dynamic virtual machine pool dynamic-virtual-machine-pool-01 (normally just one storage pool).
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=c92851ab-ec8e-4eba-b60d-96cf3f72fd02,ou=storage pools,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstRelationship
ou: c92851ab-ec8e-4eba-b60d-96cf3f72fd02
description: This entry links to the vm storage pool c92851ab-ec8e-4eba-b60d-96cf3f72fd02.
labeledURI: ldap:///sstStoragePool=c92851ab-ec8e-4eba-b60d-96cf3f72fd02,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=ranges,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: ranges
description: This sub tree stores all the ranges belonging to default dynamic virtual machine pool dynamic-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

dn: ou=virtual machines,sstVirtualMachinePool=dbd81080-d9f8-42e2-a261-d56b80c9c528,ou=virtual machine pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstRelationship
ou: virtual machines
description: This sub tree stores all the virtual machines belonging to default dynamic virtual machine pool dynamic-virtual-machine-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Storage Pools

The sub tree ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org contains all the storage pools for the virtualization environment.

The following LDIF extract shows the sub tree ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org:

dn: ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: storage pools
description: This sub tree contains all the storage pools for the virtualization environment.
Template Storage Pool

The following LDIF extract shows the entry with the default template storage pool template-storage-pool-01 that is already set up when the stoney cloud is installed:

dn: sstStoragePool=5b77d2f6-061f-410c-8ee7-9e61da6f1927,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstStoragePoolObjectClass
objectclass: sstRelationship
sstStoragePool: 5b77d2f6-061f-410c-8ee7-9e61da6f1927
sstStoragePoolURI: file:///var/virtualization/vm-templates/5b77d2f6-061f-410c-8ee7-9e61da6f1927
sstStoragePoolType: template
sstDisplayName: template-storage-pool-01
description: This is the default template storage pool template-storage-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
Static Storage Pool

The following LDIF extract shows the entry with the default static storage pool static-storage-pool-01 that is already set up when the stoney cloud is installed:

dn: sstStoragePool=0f83f084-8080-413e-b558-b678e504836e,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstStoragePoolObjectClass
objectclass: sstRelationship
sstStoragePool: 0f83f084-8080-413e-b558-b678e504836e
sstStoragePoolURI: file:///var/virtualization/vm-persistent/0f83f084-8080-413e-b558-b678e504836e
sstStoragePoolType: static
sstDisplayName: static-storage-pool-01
description: This is the default static storage pool static-storage-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
Dynamic Storage Pool

The following LDIF extract shows the entry with the default dynamic storage pool dynamic-storage-pool-01 that is already set up when the stoney cloud is installed:

dn: sstStoragePool=c92851ab-ec8e-4eba-b60d-96cf3f72fd02,ou=storage pools,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstStoragePoolObjectClass
objectclass: sstRelationship
sstStoragePool: c92851ab-ec8e-4eba-b60d-96cf3f72fd02
sstStoragePoolURI: file:///var/virtualization/vm-dynamic/c92851ab-ec8e-4eba-b60d-96cf3f72fd02
sstStoragePoolType: dynamic
sstDisplayName: dynamic-storage-pool-01
description: This is the default dynamic storage pool dynamic-storage-pool-01.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

Virtual Machines Profiles

Im Subtree ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch befinden sich die Profile der aller virtuellen Maschinen. Pro Betriebssystem gibt es ein Default-Profile, welche als Grundlage für alle weiteren Profile dienen.

Das nachfolgende LDIF zeigt den Subtree ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch:

dn: ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: virtual machine profiles
description: This subtree contains all the profiles to create virtual machine templates in the virtualization environment.

Pro Betriebssystem gibt es jeweils noch einen weiteren Subtree. Aktuell sind Linux und Windows aufgenommen. Weitere Betriebssysteme können nach Bedarf ergänzt werden. Die nachfolgenden LDIF-Auszüge zeigen den Linux- und den Windows-Subtree:

dn: ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: linux
description: This subtree contains all the Linux related profiles to create virtual machine templates in the virtualization environment.
dn: ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: windows
description: This subtree contains all the Windows related profiles to create virtual machine templates in the virtualization environment.
Linux Default VM-Profil

Das nachfolgende LDIF zeigt das komplette Linux Default VM-Profil:

dn: ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: default
description: This is the default Linux VM-Profile subtree (operating system name level).

dn: ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileArchitectureDefaults
ou: default
description: This is the default Linux VM-Profile subtree (architecture level).
sstOSArchitectureDefault: x86_64
sstOSArchitectureValues: i686
sstOSArchitectureValues: x86_64

dn: ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileLanguageDefaults
ou: default
description: This is the default Linux VM-Profile subtree (language level).
sstLanguageDefault: multi
sstLanguageValues: de-DE
sstLanguageValues: de-AT
sstLanguageValues: de-CH
sstLanguageValues: en-US
sstLanguageValues: en-GB
sstLanguageValues: fr-CH
sstLanguageValues: fr-FR
sstLanguageValues: it-CH
sstLanguageValues: it-IT

dn: sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachine
objectclass: sstVirtualizationVirtualMachineDefaults
sstVirtualMachine: default
sstDisplayName: TBD_GUI
description: TBD_GUI
sstMemory: -1
sstVCPU: -1
sstStatus: TBD_SYSTEM
sstNode: TBD_GUI
sstType: kvm
sstOSArchitecture: TBD_GUI
sstOSMachine: pc-0.13
sstOSType: hvm
sstOSBootDevice: cdrom
sstFeature: acpi
sstFeature: pae
sstClockOffset: TBD_GUI
sstMemoryDefault: 134217728
sstMemoryMin: 134217728
sstMemoryMax: 8589934592
sstMemoryStep: 134217728
sstVCPUDefault: 1
sstVCPUValues: 1
sstVCPUValues: 2
sstVCPUValues: 4
sstClockOffsetDefault: utc
sstClockOffsetValues: localtime
sstClockOffsetValues: utc
sstOnPowerOff: TBD_GUI
sstOnPowerOffDefault: destroy
sstOnPowerOffValues: destroy
sstOnReboot: TBD_GUI
sstOnRebootDefault: restart
sstOnRebootValues: restart
sstOnCrash: TBD_GUI
sstOnCrashDefault: destroy
sstOnCrashValues: destroy
sstVirtualMachineType: profile
sstVirtualMachineSubType: VM-Profile

dn: ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationVirtualMachineDevices
ou: devices
sstEmulator: /usr/local/bin/qemu-kvm.spice
sstMemBalloon: virtio

dn: sstDisk=vda,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
objectclass: sstVirtualizationVirtualMachineDiskDefaults
sstDisk: vda
sstType: file
sstDevice: disk
sstSourceFile: TBD_SYSTEM
sstTargetBus: virtio
sstReadonly: FALSE
sstDriverName: qemu
sstDriverType: qcow2
sstVolumeName: TBD_SYSTEM
sstVolumeAllocation: 0
sstVolumeCapacity: -1
sstVolumeCapacityDefault: 10737418240
sstVolumeCapacityMin: 10737418240
sstVolumeCapacityMax: 214748364800
sstVolumeCapacityStep: 1073741824

dn: sstDisk=hdb,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstDisk: hdb
sstType: file
sstDevice: cdrom
sstSourceFile: TBD_GUI
sstTargetBus: ide
sstReadonly: TRUE

dn: sstInterface=net0,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineInterface
sstInterface: net0
sstType: bridge
sstSourceBridge: vmbr0
sstMacAddress: TBD_SYSTEM
sstModelType: virtio
Beispiel eines Linux VM-Profiles

Das nachfolgende LDIF zeigt das komplette Linux openSUSE 11.3 with KDE VM-Profile, welches auf dem Default Linux VM-Profile aufbaut:

dn: ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: openSUSE 11.3
description: This is the openSUSE 11.3 VM-Profile subtree (operating system name level).

dn: ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: x86_64
description: This is the openSUSE 11.3 VM-Profile subtree (architecture level).

dn: ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
ou: multi
description: This is the default Linux VM-Profile subtree (language level).

dn: sstVirtualMachine=9a38a062-1f06-4bc2-94a6-bf5f4bdccddc,ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachine
sstVirtualMachine: 9a38a062-1f06-4bc2-94a6-bf5f4bdccddc
objectclass: labeledURIObject
sstDisplayName: TBD_GUI
description: openSUSE 11.3 with KDE.
sstMemory: 536870912
sstVCPU: 1
sstStatus: TBD_SYSTEM
sstNode: TBD_GUI
sstType: kvm
sstOSArchitecture: x86_64
sstOSMachine: pc-0.13
sstOSType: hvm
sstOSBootDevice: cdrom
sstFeature: acpi
sstFeature: pae
sstClockOffset: utc
sstOnPowerOff: destroy
sstOnReboot: restart
sstOnCrash: destroy
sstSourceFile: /var/virtualization/iso/images/png/Linux_OpenSUSE_Logo_16.png
labeledURI: ldap:///sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
sstVirtualMachineType: profile
sstVirtualMachineSubType: VM-Profile

dn: ou=devices,sstVirtualMachine=9a38a062-1f06-4bc2-94a6-bf5f4bdccddc,ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationVirtualMachineDevices
ou: devices
sstEmulator: /usr/local/bin/qemu-kvm.spice
sstMemBalloon: virtio

dn: sstDisk=vda,ou=devices,sstVirtualMachine=9a38a062-1f06-4bc2-94a6-bf5f4bdccddc,ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstDisk: vda
sstType: file
sstDevice: disk
sstSourceFile: TBD_SYSTEM
sstTargetBus: virtio
sstReadonly: FALSE
sstDriverName: qemu
sstDriverType: qcow2
sstVolumeName: TBD_SYSTEM
sstVolumeAllocation: 0
sstVolumeCapacity: 10737418240

dn: sstDisk=hdb,ou=devices,sstVirtualMachine=9a38a062-1f06-4bc2-94a6-bf5f4bdccddc,ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstDisk: hdb
sstType: file
sstDevice: cdrom
sstSourceFile: /var/virtualization/iso/f7cf6efc-8dc3-4137-90cd-f278ce7145ae.iso
sstTargetBus: ide
sstReadonly: TRUE

dn: sstInterface=net0,ou=devices,sstVirtualMachine=9a38a062-1f06-4bc2-94a6-bf5f4bdccddc,ou=multi,ou=x86_64,ou=openSUSE 11.3,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,o=stepping-stone,c=ch
objectclass: top
objectclass: sstVirtualizationVirtualMachineInterface
sstInterface: net0
sstType: bridge
sstSourceBridge: vmbr0
sstMacAddress: TBD_SYSTEM
sstModelType: virtio
Windows Default VM-Profile

Das nachfolgende LDIF zeigt das komplette Windows Default VM-Profil:

# Entry 1: ou=default,ou=windows,ou=virtual machine profiles,ou=virtualiz...
dn: ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (operating system name level).
objectclass: top
objectclass: organizationalUnit
ou: default

# Entry 2: ou=default,ou=default,ou=windows,ou=virtual machine profiles,o...
dn: ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (architecture level).
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileArchitectureDefaults
ou: default
sstOSArchitectureDefault: x86_64
sstOSArchitectureValues: i686
sstOSArchitectureValues: x86_64

# Entry 3: ou=default,ou=default,ou=default,ou=windows,ou=virtual machine...
dn: ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (language level).
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileLanguageDefaults
ou: default
sstLanguageDefault: multi
sstLanguageValues: multi
sstLanguageValues: de-DE
sstLanguageValues: de-AT
sstLanguageValues: de-CH
sstLanguageValues: en-US
sstLanguageValues: en-GB
sstLanguageValues: fr-CH
sstLanguageValues: fr-FR
sstLanguageValues: it-CH
sstLanguageValues: it-IT

# Entry 4: sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=...
dn: sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: TBD_GUI
objectclass: top
objectclass: sstVirtualizationVirtualMachine
objectclass: sstVirtualizationVirtualMachineDefaults
sstclockoffset: TBD_GUI
sstclockoffsetdefault: localtime
sstclockoffsetvalues: localtime
sstclockoffsetvalues: utc
sstdisplayname: TBD_GUI
sstfeature: acpi
sstfeature: pae
sstmemory: -1
sstmemorydefault: 536870912
sstmemorymax: 8589934592
sstmemorymin: 268435456
sstmemorystep: 134217728
sstnode: TBD_GUI
sstoncrash: TBD_GUI
sstoncrashdefault: destroy
sstoncrashvalues: destroy
sstonpoweroff: TBD_GUI
sstonpoweroffdefault: destroy
sstonpoweroffvalues: destroy
sstonreboot: TBD_GUI
sstonrebootdefault: restart
sstonrebootvalues: restart
sstosarchitecture: TBD_GUI
sstosbootdevice: cdrom
sstosmachine: pc-1.2
sstostype: hvm
sststatus: TBD_SYSTEM
ssttype: kvm
sstvcpu: -1
sstvcpudefault: 1
sstvcpuvalues: 1
sstvcpuvalues: 2
sstvcpuvalues: 4
sstvirtualmachine: default
sstvirtualmachinepool: TBD_GUI
sstVirtualMachineType: profile
sstVirtualMachineSubType: VM-Profile

# Entry 5: ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=...
dn: ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=foss-
 cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationVirtualMachineDevices
ou: devices
sstemulator: /usr/bin/qemu-kvm
sstmemballoon: virtio

# Entry 6: sstDisk=hdb,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=hdb,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstdevice: cdrom
sstdisk: hdb
sstreadonly: TRUE
sstsourcefile: TBD_GUI
ssttargetbus: ide
ssttype: file

# Entry 7: sstDisk=hdc,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=hdc,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstdevice: cdrom
sstdisk: hdc
sstreadonly: TRUE
sstsourcefile: /var/virtualization/iso/85d7e9f5-4288-4a3f-b209-c12ff11c61f3.iso
ssttargetbus: ide
ssttype: file

# Entry 8: sstDisk=vda,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=vda,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
objectclass: sstVirtualizationVirtualMachineDiskDefaults
sstdevice: disk
sstdisk: vda
sstdrivercache: writeback
sstdrivername: qemu
sstdrivertype: qcow2
sstreadonly: FALSE
sstsourcefile: TBD_SYSTEM
ssttargetbus: virtio
ssttype: file
sstvolumeallocation: 0
sstvolumecapacity: -1
sstvolumecapacitydefault: 42949672960
sstvolumecapacitymax: 214748364800
sstvolumecapacitymin: 10737418240
sstvolumecapacitystep: 1073741824
sstvolumename: TBD_SYSTEM

# Entry 9: sstInterface=net0,ou=devices,sstVirtualMachine=default,ou=defa...
dn: sstInterface=net0,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineInterface
sstinterface: net0
sstmacaddress: TBD_SYSTEM
sstmodeltype: virtio
sstsourcebridge: vmbr0
ssttype: bridge
Windows XP Default VM-Profile

Das nachfolgende LDIF zeigt das komplette Windows XP Default VM-Profil:

# Entry 1: ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualiz...
dn: ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (operating system name level).
objectclass: top
objectclass: organizationalUnit
ou: Windows XP Default

# Entry 2: ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,o...
dn: ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (architecture level).
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileArchitectureDefaults
ou: default
sstOSArchitectureDefault: i686
sstOSArchitectureValues: i686
sstOSArchitectureValues: x86_64

# Entry 3: ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine...
dn: ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: This is the default Windows VM-Profile subtree (language level).
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationProfileLanguageDefaults
ou: default
sstLanguageDefault: multi
sstLanguageValues: multi
sstLanguageValues: de-DE
sstLanguageValues: de-AT
sstLanguageValues: de-CH
sstLanguageValues: en-US
sstLanguageValues: en-GB
sstLanguageValues: fr-CH
sstLanguageValues: fr-FR
sstLanguageValues: it-CH
sstLanguageValues: it-IT

# Entry 4: sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=...
dn: sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
description: TBD_GUI
objectclass: top
objectclass: sstVirtualizationVirtualMachine
objectclass: sstVirtualizationVirtualMachineDefaults
sstclockoffset: TBD_GUI
sstclockoffsetdefault: localtime
sstclockoffsetvalues: localtime
sstclockoffsetvalues: utc
sstdisplayname: TBD_GUI
sstfeature: acpi
sstfeature: pae
sstmemory: -1
sstmemorydefault: 536870912
sstmemorymax: 2147483648
sstmemorymin: 536870912
sstmemorystep: 134217728
sstnode: TBD_GUI
sstoncrash: TBD_GUI
sstoncrashdefault: destroy
sstoncrashvalues: destroy
sstonpoweroff: TBD_GUI
sstonpoweroffdefault: destroy
sstonpoweroffvalues: destroy
sstonreboot: TBD_GUI
sstonrebootdefault: restart
sstonrebootvalues: restart
sstosarchitecture: TBD_GUI
sstosbootdevice: cdrom
sstosmachine: pc-1.0
sstostype: hvm
sststatus: TBD_SYSTEM
ssttype: kvm
sstvcpu: -1
sstvcpudefault: 1
sstvcpuvalues: 1
sstvirtualmachine: default
sstvirtualmachinepool: TBD_GUI
sstVirtualMachineType: profile
sstVirtualMachineSubType: VM-Profile

# Entry 5: ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=...
dn: ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstVirtualizationVirtualMachineDevices
ou: devices
sstemulator: /usr/bin/qemu-kvm
sstmemballoon: virtio

# Entry 6: sstDisk=hdb,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=hdb,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstdevice: cdrom
sstdisk: hdb
sstreadonly: TRUE
sstsourcefile: TBD_GUI
ssttargetbus: ide
ssttype: file

# Entry 7: sstDisk=hdc,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=hdc,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
sstdevice: cdrom
sstdisk: hdc
sstreadonly: TRUE
sstsourcefile: /var/virtualization/iso/85d7e9f5-4288-4a3f-b209-c12ff11c61f3.iso
ssttargetbus: ide
ssttype: file

# Entry 8: sstDisk=vda,ou=devices,sstVirtualMachine=default,ou=default,ou...
dn: sstDisk=vda,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineDisk
objectclass: sstVirtualizationVirtualMachineDiskDefaults
sstdevice: disk
sstdisk: vda
sstdrivercache: writeback
sstdrivername: qemu
sstdrivertype: qcow2
sstreadonly: FALSE
sstsourcefile: TBD_SYSTEM
ssttargetbus: ide
ssttype: file
sstvolumeallocation: 0
sstvolumecapacity: -1
sstvolumecapacitydefault: 42949672960
sstvolumecapacitymax: 214748364800
sstvolumecapacitymin: 10737418240
sstvolumecapacitystep: 1073741824
sstvolumename: TBD_SYSTEM

# Entry 9: sstInterface=net0,ou=devices,sstVirtualMachine=default,ou=defa...
dn: sstInterface=net0,ou=devices,sstVirtualMachine=default,ou=default,ou=default,ou=Windows XP Default,ou=windows,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstVirtualizationVirtualMachineInterface
sstinterface: net0
sstmacaddress: TBD_SYSTEM
sstmodeltype: virtio
sstsourcebridge: vmbr0
ssttype: bridge

Virtual Machines

The sub tree ou=virtual machines,ou=virtualization,ou=services,o=stepping-stone,c=ch contains all virtual machines and virtual machine templates of this stoney cloud installation.

The following LDIF shows the sub tree entry ou=virtual machines,ou=virtualization,ou=services, o=stepping-stone,c=ch:

dn: ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: virtual machines
description: This sub tree contains all virtual machines and virtual machine templates of this stoney cloud installation.
Virtual Machine Templates

The virtual machine templates and the virtual machines are practically the same. The only difference lies in the the type. The following example describes a virtual machine template:

sstVirtualMachineType: template
sstVirtualMachineSubType: VM-Template

The following example describes a virtual machine:

sstVirtualMachineType: persistent
sstVirtualMachineSubType: server
Virtual Machine

The following LDIF entry shows the virtual machine kvm-0001.stoney-cloud.org. In the stoney cloud version 1.2.0 the entries sstNetworkHostname: kvm-0001 and sstNetworkDomainName: stoney-cloud.org have been added. These will be used by the vm-manager in the stoney cloud version 1.4.0 to automatically set sstDisplayName: kvm-0001.stoney-cloud.org properly. The user will be allowed to set sstNetworkHostname and sstNetworkDomainName. The content of sstDisplayName will be pre-filled with the content of sstNetworkHostname and sstNetworkDomainName and will be able to be modified through the user. A typical edit could be sstDisplayName: kvm-0001.stoney-cloud.org (Mail Server)

dn: sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstVirtualizationVirtualMachine
objectClass: sstRelationship
objectClass: sstSpice
objectClass: labeledURIObject
sstVirtualMachine: b543f88f-dffe-426f-86d3-c7ff85c16d2a
description: Linux Fedora 20 (64-bit)
sstVirtualMachinePool: d9c3cc0c-9ae7-40e5-8fb7-ba5297e835aa
sstClockOffset: utc
sstMemory: 2147483648
sstNode: vm-node-01.stoney-cloud.org
sstOnCrash: destroy
sstOnPowerOff: destroy
sstOnReboot: restart
sstOSArchitecture: x86_64
sstOSBootDevice: hd
sstOSMachine: pc-i440fx-1.5
sstOSType: hvm
sstStatus: running
sstVirtualMachineMode: first installation
sstType: kvm
sstVCPU: 1
sstFeature: acpi
sstFeature: pae
sstVirtualMachineType: persistent
sstVirtualMachineSubType: Server
sstSpicePort: 5900
sstSpicePassword: Z1oQn2HrF9Lb
labeledURI: ldap:///sstVirtualMachine=default,ou=default,ou=default,ou=default,ou=linux,ou=virtual machine profiles,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
sstNetworkDomainName: stoney-cloud.org
sstNetworkHostname: kvm-0001
sstDisplayName: kvm-0001.stoney-cloud.org
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
uid: 1234567

The following table describes the different attributes:

Attribute
Existence
Mandatory
Self-Service
Changeable
Description
sstVirtualMachine
description
sstVirtualMachinePool
sstClockOffset
sstMemory
sstNode
sstOnCrash
sstOnPowerOff
sstOnReboot
sstOSArchitecture
sstOSBootDevice
sstOSMachine
sstOSType
sstStatus
sstVirtualMachineMode
Possible values are:
  • do not use: virtual machines can not be created.
  • maintenance mode: virtual machines can not be created from this virtual machine template. This mode is used to update the virtual machine template.
  • first installation: virtual machines can not be created from this virtual machine template, this is the default mode after a fresh virtual machine template creation.
  • ready for use: the administrator can not start this virtual machine. If he wants to start the virtual machine template, he must set the mode to maintenance mode.

If the sstVirtualMachineMode attribute does not exist, this must have the same meaning as do not use.

Releasing a virtual machine template for use: In Step 3: Install the Virtual Machine Template with the chosen operating system of the Lean Provisioning Work Flow, the user must release the virtual machine template:

  • This is done by setting the attribute sstVirtualMachineMode from first installation to ready for use
sstType
sstVCPU
sstFeature
sstVirtualMachineType
sstVirtualMachineSubType
sstSpicePort
sstSpicePassword
labeledURI
sstNetworkDomainName
sstNetworkHostname
sstDisplayName
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to.
sstBelongsToCustomerUID
MUST
x
Stores the customer UID the leaf belongs to.
sstBelongsToPersonUID
MAY
x3
Stores the person UID the leaf belongs to.
sstBelongsToServiceUID
MAY
x3
Stores the service UID the leaf belongs to.
uid
MUST
x
A unique integer value with 7 digits or more. For example: 1234567. The uid</uid> is used for billing purposes.

Legend:

  • x: Mandatory in all cases.
  • x1: Only show, if the number is larger than zero.
  • x2: Only show, if <code>sstBackupWarningOn is set to TRUE.
  • x3: Either sstBelongsToPersonUID or sstBelongsToServiceUID must bei set.
Virtual Machine: Backup

See stoney conductor: VM Backups for details of how the virtual machine backups work.

The sub tree below which all the backups for the virtual machine b543f88f-dffe-426f-86d3-c7ff85c16d2a are stored.

dn: ou=backup,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: backup

An example of a successful backup run for the virtual machine b543f88f-dffe-426f-86d3-c7ff85c16d2a.

dn: ou=20131224T161329Z,ou=backup,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstProvisioning
objectclass: organizationalUnit
ou: 20131224T161329Z
sstProvisioningExecutionTime: snapshot: 0
sstProvisioningExecutionTime: merge: 0
sstProvisioningExecutionTime: retain: 119
sstProvisioningExecutionDate: 0
sstProvisioningMode: finished
sstProvisioningReturnValue: 0
sstProvisioningState: 0
Virtual Machine: Devices
dn: ou=devices,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: organizationalUnit
objectClass: sstVirtualizationVirtualMachineDevices
ou: devices
sstEmulator: /usr/bin/qemu-kvm
sstMemBalloon: virtio
dn: sstDisk=hdb,ou=devices,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstVirtualizationVirtualMachineDisk
sstDevice: cdrom
sstDisk: hdb
sstSourceFile: /var/virtualization/iso/d9f0bc41-c883-49c7-8915-4d6b6ad3403d.iso
sstTargetBus: ide
sstType: file
sstReadonly: TRUE
dn: sstDisk=vda,ou=devices,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstVirtualizationVirtualMachineDisk
sstDevice: disk
sstDisk: vda
sstSourceFile: /var/virtualization/vm-persistent/0f83f084-8080-413e-b558-b678e504836e/30909c54-877a-432c-93a7-e5e3c7389bed.qcow2
sstTargetBus: virtio
sstType: file
sstDriverCache: writeback
sstDriverName: qemu
sstDriverType: qcow2
sstReadonly: FALSE
sstVolumeAllocation: 0
sstVolumeCapacity: 10737418240
sstVolumeName: 30909c54-877a-432c-93a7-e5e3c7389bed
dn: sstInterface=net0,ou=devices,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstVirtualizationVirtualMachineInterface
sstInterface: net0
sstMacAddress: 52:54:00:48:e4:1e
sstModelType: virtio
sstSourceBridge: vmbr0
sstType: bridge
Virtual Machine: Groups
dn: ou=groups,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
Virtual Machine: Operating System
dn: ou=operating system,sstVirtualMachine=4b99c860-cf5a-435a-a87d-e9fdc2bf0ba5,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectclass: organizationalUnit
objectClass: sstOperatingSystemObjectClass
ou: operating system
sstOperatingSystem: Windows
sstOperatingSystemType: Server 2012
sstOperatingSystemVersion: Standard
Virtual Machine: People
dn: ou=people,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
Virtual Machine: Settings
dn: ou=settings,sstVirtualMachine=b543f88f-dffe-426f-86d3-c7ff85c16d2a,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: organizationalUnit
ou: settings
Virtual Machine: Software Stack
dn: ou=software stack,sstVirtualMachine=4b99c860-cf5a-435a-a87d-e9fdc2bf0ba5,ou=virtual machines,ou=virtualization,ou=services,dc=stoney-cloud,dc=org
objectClass: top
objectClass: sstGroupObjectClass
objectClass: labeledURIObject
ou: software stack
sstDisplayName: None
sstBusinessLogicRoleName: none
description: No Software Stack is to be managed through the configuration management.
labeledURI: ldap:///uid=3000064,ou=software stack,ou=configuration,o=stepping-stone,c=ch
sstEnvironmentName: 3000060

The attribute sstEnvironmentName: 3000060 points to the entry uid=3000060,ou=environments,ou=software stack,ou=configuration,dc=stoney-cloud,dc=org and means, we are in the Production Environment.