Diego D
Diego D

Reputation: 1755

Configure Couchbase 2.2 to use short hostname

I need to configure Couchbase 2.2 to use short hostname.

Currently I am using Couchbase 2.0.1 and in this case the solution was easy:

  1. Set Short hostname in /opt/couchbase/var/lib/couchbase/ip and /opt/couchbase/var/lib/couchbase/ip_start files.
  2. Change extra="-name ns_1@$ip" for extra="-sname ns_1@$ip" in _start() function into /opt/couchbase/bin/couchbase-server. This parameter was used to run erl (-run ns_bootstrap -- $extra)

This steps allows me to configure the node with the short hostname and create the cluster based on these.

In Couchbase 2.2 I can't do that because erl runs using babysitter. I try to configure babysitter to use short hostname but I couldn't make it work...

The servers were deployed in an a private Virtualization environment that only handle short hostname.

Each node has 2 ips, one public and one private. If I run a ping command from itself i get their private IP and I run ping a command from any other node I get their public IP.

For example, if I have one node: myhost-00 (private IP: 192.168.8.170 public IP: 10.254.171.29)

from itself:

$ ping myhost-00
PING myhost-00 (192.168.8.170) 56(84) bytes of data.

from other node:

$ ping myhost-00
PING myhost-00 (10.254.171.29) 56(84) bytes of data.

Any ideas?

Upvotes: 2

Views: 1275

Answers (2)

Diego D
Diego D

Reputation: 1755

I figured out a workaround:

Firstly, I don't modify any of the Couchbase files.

Secondly, I add a fake domain to my short hostname in each /etc/hosts file. In the file I append the private IP for the current node and the public IP for other nodes with the fake domain.

For example, assuming I have 2 hosts: 
myhost-00 (private IP: 192.168.8.170 public IP: 10.254.171.29) 
myhost-01 (private IP: 192.168.8.168 public IP: 10.254.171.30)

myhost-00 /etc/hosts file:
...
192.168.8.170 myhost-00.mydomain
10.254.171.30 myhost-01.mydomain
...

myhost-01 /etc/hosts file:
...
10.254.171.29 myhost-00.mydomain
192.168.8.168 myhost-01.mydomain
...

Finally, I create de cluster using the hostnames with the fake domains (myhost-00.mydomain and myhost-01.mydomain)

Upvotes: 2

Don Stacy
Don Stacy

Reputation: 291

At this time, Couchbase does not allow the use of short names for the node name. There are ticket updates that discuss and confirm this situation.

For long hostnames, you will find steps to use hostname at http://docs.couchbase.com/couchbase-manual-2.2/#couchbase-getting-started-hostnames and http://docs.couchbase.com/couchbase-manual-2.5/cb-install/#using-hostnames, depending on version. You can leverage hostname when a cluster is created, a node is added to a cluster, or you can change from an IP address to a hostname via a REST API command. See the doc for full details.

Upvotes: 0

Related Questions