Using Couchbase storage in oxd#
Overview#
The idea of using using Couchbase (or ldap) storage in oxd basically came so that oxd and Gluu Server can have common persistance. This is particularly useful when configuring high availability (HA) across multiple instances of the Gluu Server.
oxd can also be configured to use any remote or local Couchbase (which is not used by Gluu server) as storage.
Using Gluu server's Couchbase in oxd#
To use Gluu server's Couchbase as storage in oxd-server we need to follow below steps:
-
Login to Gluu CE Server.
-
In /opt/oxd-server/conf/oxd-server.yml file of installed oxd-server set below parameters. Here,
gluu_server_configurationstorage tells oxd to use Gluu server persistance. In Gluu CE server the persistance configuration files are stored at location/etc/gluu/conf. Following 3 configuration files are used for couchbase connection:/etc/gluu/conf/gluu.properties,/etc/gluu/conf/gluu-couchbase.propertiesand/etc/gluu/conf/salt.``` storage: gluu_server_configuration storage_configuration: baseDn: o=gluu type: /etc/gluu/conf/gluu.properties connection: /etc/gluu/conf/gluu-couchbase.properties salt: /etc/gluu/conf/salt ``` -
Restart oxd server. Once oxd is successfully restarted then it will start using the
couchbasestorage configured inoxd-server.yml.``` systemctl restart oxd-server ```
Fields details of configuration files#
Refer this tutorials for more information on gluu persistance. You can also search Gluu Server docs to learn more.
gluu.properties fields
oxd read persistence.type field from this file to find whether the storage is ldap or couchbase. The path of this file is set to type field in oxd-server.yml.
```
persistence.type=couchbase
```
gluu-couchbase.properties fields
This file contains fields whose value is required for creating the connection with couchbase server. The path of this file is set to connection field in oxd-server.yml.
```
servers: <hostname>
connection.connect-timeout:10000
connection.connection-max-wait-time: 20000
connection.operation-tracing-enabled: false
# If mutation tokens are enabled, they can be used for advanced durability requirements,
# as well as optimized RYOW consistency.
connection.mutation-tokens-enabled: false
# Sets the pool size (number of threads to use) for all non blocking operations in the core and clients
# (default value is the number of CPUs).
# connection.computation-pool-size: 5
# Default scan consistency. Possible values are: not_bounded, request_plus, statement_plus
connection.scan-consistency: not_bounded
auth.userName: <couchbase_server_user>
auth.userPassword: <encoded_couchbase_server_pw>
buckets: gluu, gluu_token, gluu_cache, gluu_user, gluu_site
bucket.default: gluu
bucket.gluu_user.mapping: people, groups, authorizations
bucket.gluu_cache.mapping: cache
bucket.gluu_site.mapping: cache-refresh
bucket.gluu_token.mapping: tokens
password.encryption.method: <encryption_method>
ssl.trustStore.enable: <ssl_enabled>
ssl.trustStore.file: <couchbaseTrustStoreFn>
ssl.trustStore.pin: <encoded_couchbaseTrustStorePass>
ssl.trustStore.format: pkcs12
binaryAttributes=objectGUID
certificateAttributes=userCertificate
```
salt fields
This file contain salt string to decode the encoded values from gluu-couchbase.properties file. The path of this file is set to salt field in oxd-server.yml
```
encodeSalt=<salt-string>
```
Using any local or remote couchbase server in oxd#
To use any local or remote couchbase as storage in oxd-server we need to follow below steps:
-
Create the persistance files with connection properties as described here.
-
In /opt/oxd-server/conf/oxd-server.yml file of installed oxd-server set
couchbaseasstorage,baseDnaso=gluuand path of persistance configuration properties files as shown below.``` storage: couchbase storage_configuration: baseDn: o=gluu type: /opt/oxd-server/conf/gluu.properties connection: /opt/oxd-server/conf/gluu-ldap.properties salt: /opt/oxd-server/conf/salt ``` -
Restart oxd server. Once oxd is successfully restarted then it will start using the
couchbasestorage configured inoxd-server.yml.``` systemctl restart oxd-server ```