# Add client role to existing master node

**URL:** <https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666>\
**Category:** Elasticsearch\
**Created:** [September 5, 2022, 9:40am UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666 "2022-09-05T09:40:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tahseen\_fatima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tahseen_fatima/32/67789_2.png) [@tahseen\_fatima](https://discuss.elastic.co/u/tahseen_fatima)\
**Post date:** [September 5, 2022, 9:41am UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/1 "2022-09-05T09:41:00Z")

</div>

Hi Experts,

I have 2 elasticsearch(7.16.2) monitoring cluster with 3 master + data eligible roles.  
I want enabling CCR between them, I am following document for doing this integration.  
[CCR Link](https://www.elastic.co/guide/en/elasticsearch/reference/7.16/ccr-getting-started-tutorial.html)

I have run the below command as the above documents says.

```auto
PUT /_cluster/settings
{
  "persistent" : {
    "cluster" : {
      "remote" : {
        "leader" : {
          "seeds" : [
            "127.0.0.1:9300" 
          ]
        }
      }
    }
  }
}

```

After running the command I am getting the following output as

`GET /_remote/info`

```auto
{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "node [es-mon-data1] does not have the [remote_cluster_client] role"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "node [es-mon-data1] does not have the [remote_cluster_client] role"
  },
  "status" : 400
}

```

I tried enabling the client node to my master node 3, but its giving error in elasticsearch.

> [2022-09-05T13:19:25,979][INFO][o.e.e.NodeEnvironment] [es-mon-data3] heap size [30gb], compressed ordinary object pointers [true]  
> [2022-09-05T13:19:25,984][ERROR][o.e.b.Bootstrap] [es-mon-data3] Exception  
> java.lang.IllegalArgumentException: unknown role [client]  
> at org.elasticsearch.cluster.node.DiscoveryNode.getRoleFromRoleName(DiscoveryNode.java:586) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]  
> at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]  
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]  
> at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]  
> at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]  
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]  
> at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]  
> at org.elasticsearch.common.settings.Setting.lambda$listSetting$46(Setting.java:1690) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.common.settings.Setting.get(Setting.java:491) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.common.settings.Setting.get(Setting.java:485) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cluster.node.DiscoveryNode.getRolesFromSettings(DiscoveryNode.java:273) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cluster.node.DiscoveryNode.canContainData(DiscoveryNode.java:95) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:348) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.node.Node.(Node.java:427) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.node.Node.(Node.java:309) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:234) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:234) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) [elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:166) [elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:157) [elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) [elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) [elasticsearch-cli-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.Command.main(Command.java:77) [elasticsearch-cli-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:122) [elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) [elasticsearch-7.16.2.jar:7.16.2]  
> [2022-09-05T13:19:25,988][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [es-mon-data3] uncaught exception in thread [main]  
> org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown role [client]  
> at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:157) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:122) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.16.2.jar:7.16.2]  
> Caused by: java.lang.IllegalArgumentException: unknown role [client]  
> at org.elasticsearch.cluster.node.DiscoveryNode.getRoleFromRoleName(DiscoveryNode.java:586) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]  
> at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]  
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]  
> at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]  
> at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]  
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]  
> at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]  
> at org.elasticsearch.common.settings.Setting.lambda$listSetting$46(Setting.java:1690) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.common.settings.Setting.get(Setting.java:491) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.common.settings.Setting.get(Setting.java:485) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cluster.node.DiscoveryNode.getRolesFromSettings(DiscoveryNode.java:273) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.cluster.node.DiscoveryNode.canContainData(DiscoveryNode.java:95) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:348) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.node.Node.(Node.java:427) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.node.Node.(Node.java:309) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:234) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:234) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.16.2.jar:7.16.2]  
> at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:166) ~[elasticsearch-7.16.2.jar:7.16.2]

Please help me to understand why its conflicting.

Thanks,  
Tahseen

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [September 5, 2022, 9:50am UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/2 "2022-09-05T09:50:51Z")

</div>

Edit `elasticsearch.yml` of each node and customize `node.roles`

> **[Node | Elasticsearch Guide \[8.4\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html)**

- Cross-cluster search and cross-cluster replication require the `remote_cluster_client` role.

---

<div class="post-metadata">

**Author:** ![tahseen\_fatima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tahseen_fatima/32/67789_2.png) [@tahseen\_fatima](https://discuss.elastic.co/u/tahseen_fatima)\
**Post date:** [September 5, 2022, 12:26pm UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/3 "2022-09-05T12:26:01Z")

</div>

Hi @ylasri ,

Thank you for your reply.  
I followed the step you suggested, now I am bale to move ahead, but now I am getting this as connection not there.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/4/e/4e6d85dc911223432846f6847073780adb5a67c2.png)

I am getting this in both cluster.

Thanks,  
Tahseen

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [September 5, 2022, 12:56pm UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/4 "2022-09-05T12:56:18Z")

</div>

Any message from logs ?  
Are you using SSL for both cluster ?  
If yes, check this [Configure remote clusters with security | Elasticsearch Guide [8.4] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/remote-clusters-security.html)

---

<div class="post-metadata">

**Author:** ![tahseen\_fatima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tahseen_fatima/32/67789_2.png) [@tahseen\_fatima](https://discuss.elastic.co/u/tahseen_fatima)\
**Post date:** [September 12, 2022, 9:19am UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/5 "2022-09-12T09:19:08Z")

</div>

Hi @ylasri ,

It was related to firewall blocked, I opened the firewall port. now its working fine.  
I can able to see remote cluster data in primary cluster

Thank you,  
Tahseen

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 10, 2022, 9:19am UTC](https://discuss.elastic.co/t/add-client-role-to-existing-master-node/313666/6 "2022-10-10T09:19:11Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
