Changes

Jump to: navigation, search
/* Load Balancer as a Service (LBaaS) - Account example */
=== Load Balancer as a Service (LBaaS) - Account example ===
The following example shows the OpenLDAP directory entry for the stoney wiki Load Balancer as a Service (LBaaS) account with the uid number 3730083:
<source lang="ldif">
objectclass: posixAccount
objectclass: shadowAccount
objectclass: sstLBaaS
objectclass: sstProvisioning
objectclass: sstRelationship
uidNumber: 3730083
gidNumber: 3730083
cn: 3730083.stoney-wiki.comgecos: 3730083Example Ltd.stoney-wiki(www.example.com) # This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN).
homeDirectory: /home/3730083
loginShell: /bin/false
shadowWarning: 7
sstIsActive: TRUE
sstLBaaSFrontendURI: https://www.example.com/ # Uniform Resource Identifier with optional label.sstLBaaSFrontendURI: https://example.com/ # Uniform Resource Identifier with optional label.sstLBaaSFrontendURI: https://api.example.com/ # Uniform Resource Identifier with optional label.sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/ # Uniform Resource Identifier with optional label.sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/ # Uniform Resource Identifier with optional label.sstLBaaSHost: haproxy-001.os.stoney-cloud.com # Fully qualified domain name (FQDN).sstLBaaSHost: haproxy-002.os.stoney-cloud.com # Fully qualified domain name (FQDN).
sstProvisioningMode: add
sstProvisioningExecutionDate: 0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUIDsstBelongsToServiceUID: 40000024000003 # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).sstBelongsToServiceUID: 40000034000004 # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).
</source>
 
The LDIF above can be queried via the cli command <code>getent passwd</code>:
<syntaxhighlight lang='bash'>
getent passwd 3730083
</syntaxhighlight>
 
This will result in the following output:
<syntaxhighlight lang='text'>
# .----------------------------------------------------------------------------- login name
# | .----------------------------------------------------------------------- encrypted password indicator
# | | .--------------------------------------------------------------------- numerical user ID
# | | | .------------------------------------------------------------- numerical group ID
# | | | | .----------------------------------------------------- gecos field (the typical format is a comma-delimited list)
# | | | | | .---------------------- user home directory
# | | | | | | .-------- user command interpreter
# | | | | | | |
# | | | | | | |
3730083:x:3730083:3730083:Example Ltd. (www.example.com):/home/3730083:/bin/false
</syntaxhighlight>
The following table describes the different attributes:
| <center>MAY</center>
| <center>x</center>
| <center>x</center>| <center>x</center>| Identifies the entry's password and encryption method in the following format: <code>{encryption method}encrypted password</code>.  For example: <code>{SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U. This password will be automatically set through the Self-Service interface. Afterwords, the password can be changed by the user (including the reseller and customer). The initial password is stored in clear text and is encrypted by the provisioning daemon</code>.
|-
| <center>MUST</center>
| <center>x</center>
| <center></center>| <center></center>| Related to the /etc/shadow file, this attribute specifies the user's login ID. Is Has the same value as the '''<code>uid'''</code>. For example: '''<code>3730083'''</code>.
|-
| <center>MUST</center>
| <center>x</center>
| <center></center>| <center></center>| Group ID number. Is Has the same value as the '''<code>uid'''</code>. For example: '''<code>3730083'''</code>.
|-
| <center>MUST</center>
| <center>x</center>
| As we don't use this attribute (but the attribute is mandatory), we set this to <centercode>uid</centercode>| value. For example: <centercode>3730083</centercode>| Consists of the '''uid''' and the domain '''stoney-wiki.com'''. For example: '''3730083.stoney-wiki.com'''.
|-
| posixAccount
| <center>MAY</center>
| <center>x</center>
| <center>x</center>
| <center>x</center>
| Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of <code>givenName</code> and <code>surname</code>, for example <code>Michael Eichenberger</code>. These values are taken from the owners entry (ou=people). For a service account, the attribute <code>sstDisplayName</code> from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a '''IA5String''' (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the '''uid''' and the domain '''stoney-wiki.com'''. For example: '''3730083.stoney-wiki.com'''.
<code>iconv("UTF-8", "ASCII//TRANSLIT", "Tüpfelhyänenöhrchen")</code><br />
Please be aware, that some characters don't get converted properly ... For example: Ø and £. The characters $ and € work.
 
This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN). For example: <code>Example Ltd. (www.example.com)</code>.
|-
| <center>MUST</center>
| <center>x</center>
| <center></center>| <center></center>| The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid '''<code>3730083'''</code>. <code>/var/wiki/g/efg/bcdhome/abcdefg</code><br/><code>/var/wiki/3/083/730home/3730083</code>This attribute is created by the Self-Service interface.
|-
| <center>MAY</center>
| <center>x</center>
| <center></center>| <center></center>| The path to the login shell. The default is '''<code>/bin/false''' </code> and can no must not be changed.
|-
| <center>MAY</center>
| <center>x</center>
| <center></center>| <center></center>| Related to the <code>/etc/shadow </code> file, this attribute is currently not used and is reserved for future use. The default is set to '''<code>134539460''' and is taken from the "ou=settings,uid=<UID/code>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
|-
| <center>MAY</center>
| <center>x</center>
| <center></center>| <center></center>| Related to the <code>/etc/shadow </code> file, this attribute specifies number of days between January 1, 1970, and the date that the password was last modified. Must be set to the day, that the password was set (must be updated, when the password is changed). This attribute is created by the Self To create this value, you can use: <code>echo $(($(date -Service interface.-utc --date "$1" +%s)/86400))</code>
|-
| <center>MAY</center>
| <center>x</center>
| <center></center>| <center></center>| Related to the <code>/etc/shadow </code> file, this attribute specifies the maximum number of days the password is valid. The default is '''<code>99999'''</code>, which corresponds to about 273 years. In reality, this means, that the user does not need to change the password. This attribute is created by the Self-Service interface. The value is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
|-
| <center>MAY</center>
| <center>x</center>
| <center></center>| <center></center>| Related to the <code>/etc/shadow </code> file, this attribute specifies the number of days before the password expires that the user is warned. The default is '''<code>7''' and is taken from the "ou=settings,uid=<UID/code>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
|-
| sstIsActive
| sstWikisstRelationship| <center>MUSTMAY</center>
| <center>x</center>
| <center></center>| <center></center>| Is the wiki Load Balancer as a Service (LBaaS) account active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
|-
| sstNotificationWarningOnsstLBaaSFrontendURI| sstWikisstLBaaS
| <center>MUST</center>
| <center>x</center>
| This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) frontend servers in the form of a Uniform Resource Identifier with optional label. Some examples:* <centercode><https://www.example.com/center>| <center></centercode>| Are the users notification warnings turned on or not? Either * <code>TRUEhttps://example.com/</code> (yes) or * <code>FALSEhttps://api.example.com/</code> (no). Default is TRUE (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
|-
| sstNotificationWarningsstLBaaSBackendURI| sstWiki| <center>MAY</center>| <center></center>| <center></center>| <center></center>| This multi-valued attribute will be used to turn single notifications on or off. The attribute <code>sstWikiWarningOn</code> must be set to <code>TRUE</code>.  Currently, the Load Balancer as a Service (LBaaS) only supports <code>quota</code> (the names correspond with the template dn). |-| sstNotificationWarningMedium| sstWikisstLBaaS
| <center>MUST</center>
| <center>x</center>
| <center></center>| <center></center>| The notification medium, either sms (points to the This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) backend servers in the form of a Uniform Resource Identifier with optional label. Some examples:* <code>mobileTelephoneNumberhttps://sst-int-001.os.stoney-cloud.com/</code>) or mail (points to the multi-valued attribute * <code>mail<https:/code>)/sst-int-002. Currently, only mail is supportedos. This is the default is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.com/</code>
|-
| sstSoftwareVersionsstLBaaSHost| sstWikisstLBaaS| <center>MAYMUST</center>
| <center>x</center>
| <center></center>This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) servers in the form of a fully qualified domain name. Some examples:| * <centercode></center>| TBD |haproxy-| sstFileUploadSize| sstWiki| <center>MAY001.os.stoney-cloud.com</centercode>| * <centercode>x</center>| <center></center>| <center></center>| TBD  |haproxy-| host| sstWiki| <center>MAY002.os.stoney-cloud.com</centercode>| <center>x</center>| <center></center>| <center></center>| TBD
|-
| <center>MUST</center>
| <center>x</center>
| <center></center>
| <center></center>
| The provisioning mode, either <code>add</code>, <code>modify</code> or <code>delete</code>. For a new account, this attribute must be set to <code>add</code>. See [[#Provisioning | Provisioning]] for details.
| <center>MUST</center>
| <center>x</center>
| <center></center>
| <center></center>
| The date the provisioning shall occur in the form of [YYYY][MM][DD] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
| sstProvisioning
| <center>MAY</center>
| <center></center>
| <center></center>
| <center></center>
| The provisioning return value written by the [[stoney_wiki:_prov-wiki-mediawiki |prov-wiki-mediawiki]] daemon. '''0''' means success, '''>0''' means failure. See the prov-wiki-mediawiki [[stoney_wiki:_prov-wiki-mediawiki#Exit_Codes | Exit Codes]] for detailed information.
| <center>MUST</center>
| <center>x</center>
| <center></center>
| <center></center>
| The provisioning state, either 0 or in the form of [YYYY][MM][DD]T[hh][mm][ss] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
|-
| sstBelongsToResellerUID
| sstRelationship
| <center>MUST</center>
| <center>x</center>
| <center></center>
| <center></center>
| Stores the reseller UID the leaf belongs to.
|-
| sstBelongsToCustomerUID
| TBDsstRelationship
| <center>MUST</center>
| <center>x</center>
| <center></center>
| <center></center>
| Stores the customer UID the leaf belongs to.
|-
| sstBelongsToPersonUIDsstBelongsToServiceUID
| sstRelationship
| <center>MAY</center>
| <center>x<sup>3</sup></center>| <center></center>| <center></center>| Stores the person service UID (s) this entry belongs to. The service belongs to the leaf belongs backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point tomultiple services (one or more LBaaS backends).
|}
Legend:
* '''x''': Mandatory in all cases.
* '''x<sup>1</sup>''': Only show, if the number is larger than zero.
* '''x<sup>2</sup>''': Only show, if <code>sstWikiWarningOn</code> is set to <code>TRUE</code>.
* '''x<sup>3</sup>''': Either <code>sstBelongsToPersonUID</code> or <code>sstBelongsToServiceUID</code> must bei set.
== Load Balancer as a Service (LBaaS) - Groups ==
description: The sub tree for the groups of the Load Balancer as a Service (LBaaS).
</source>
 
The following table describes the different attributes:
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
! style="text-align:left; width: 180px" | Attribute
! style="text-align:left; width: 220px" | Objectclass
! style="width: 80px" | Existance
! style="width: 80px" | Mandatory
! style="text-align:left;" | Description
 
|-
| ou
| organizationalUnit
| <center>MUST</center>
| <center>x</center>
| The name of the leaf.
 
In this case: <code>groups</code>.
 
|-
| description
| organizationalUnit
| <center>MAY</center>
| <center>x</center>
| The description of the leaf.
 
In this case: <code>The sub tree for the groups of the Load Balancer as a Service (LBaaS).</code>
 
|}
 
Legend:
* '''x''': Mandatory in all cases.
=== Load Balancer as a Service (LBaaS) - Group example ===
The following example shows the OpenLDAP directory entry for the Load Balancer as a Service (LBaaS) group with the uid number 3730083:
 
<source lang="ldif">
dn: cn=3730083,ou=groups,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
cn: 3730083
gidNumber: 3730083
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUIDsstBelongsToServiceUID: 40000024000003 # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).sstBelongsToServiceUID: 4000004 # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).
</source>
 
The following table describes the different attributes:
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
! style="text-align:left; width: 180px" | Attribute
! style="text-align:left; width: 220px" | Objectclass
! style="width: 80px" | Existance
! style="width: 80px" | Mandatory
! style="text-align:left;" | Description
 
|-
| cn
| posixGroup
| <center>MUST</center>
| <center>x</center>
| As we don't use this attribute (but the attribute is mandatory and is part of the dn), we set this to <code>uid</code> value. For example: <code>3730083</code>.
 
|-
| gidNumber
| posixGroup
| <center>MUST</center>
| <center>x</center>
| The numerical group ID of the Load Balancer as a Service (LBaaS) group.
 
|-
| sstBelongsToResellerUID
| sstRelationship
| <center>MUST</center>
| <center>x</center>
| Stores the reseller UID the leaf belongs to.
 
|-
| sstBelongsToCustomerUID
| sstRelationship
| <center>MUST</center>
| <center>x</center>
| Stores the customer UID the leaf belongs to.
 
|-
| sstBelongsToServiceUID
| sstRelationship
| <center>MAY</center>
| <center>x</center>
| Stores the service UID(s) this entry belongs to. The service belongs to the backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point to multiple services (one or more LBaaS backends).
 
|}
 
Legend:
* '''x''': Mandatory in all cases.
= Links =
3,368
edits