你如何加入Linux上的Liberty集体?

时间:2017-05-26 17:11:29

标签: websphere-liberty

我正在尝试使用运行linux的Docker主机设置Liberty集合。他们目前关于设置Liberty集体的视频使用的是Windows,并且都在同一台机器上。

加入集体所以它在管理中心上显示并不太难,只是collective join --host=...

的问题

问题是管理部分,即更改配置文件或停止和启动服务器不起作用。

我尝试了在server.xml中传递hostInfo的各种方法或者--sshPrivateKey硬编码root密码,但没有一种工作。

根据说明你需要的只是一个openssh-server我已经启用并运行我已经暴露了端口并验证我可以使用来自控制器容器的证书连接到它们。

此外,基于REST API,它使用字符串化的SSH私钥而不是文件,应该通过collective registerHost发送,但它似乎不起作用,命令行日志中没有任何内容甚至使用.level = ALL和... consolelogger ... = ALL显示hostAuthInfo是什么。

我为collective join运行的其中一个命令是

collective join defaultServer \
--host=controller \
--port=9443 \
--user=adminUser \
--password=adminPassword \
--autoAcceptCertificates \
--rpcUser=root \
--sshPrivateKey=$HOME/.ssh/id_rsa \
--keystorePassword=$PASSWORD \
--createConfigFile=/config/collective-join-include.xml

我说其中之一是因为我尝试了各种组合,删除或更改了--rpcuser--sshPrivateKey和其他与authInfo相关的项目。

成员的server.xml就在这时......

<?xml version="1.0" encoding="UTF-8"?>
<server description="Application Server">
  <featureManager>
    <feature>javaee-7.0</feature>
    <feature>clusterMember-1.0</feature>
    <!--<feature>scalingMember-1.0</feature>-->
  </featureManager>
  <remoteFileAccess>
    <writeDir>${server.config.dir}</writeDir>
  </remoteFileAccess>
  <httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9443" host="*"/>
  <!--<hostSingleton name="ScalingMemberSingletonService" port="5164" />-->
  <applicationManager autoExpand="true"/>
  <!--<hostAuthInfo rpcUser="root" sshPublicKeyPath="/root/.ssh/id_rsa.pub" sshPrivateKeyPath="/root/.ssh/id_rsa"/>-->
  <include location="${server.config.dir}/collective-join-include.xml"/>
  <dataSource id="myds" jndiName="jdbc/sample" type="javax.sql.XADataSource">
    <jdbcDriver javax.sql.ConnectionPoolDataSource="org.mariadb.jdbc.MariaDbDataSource" javax.sql.DataSource="org.mariadb.jdbc.MariaDbDataSource" javax.sql.XADataSource="org.mariadb.jdbc.MariaDbDataSource">
      <library>
        <file name="${server.config.dir}/mariadb-java-client-1.5.9.jar"/>
      </library>
    </jdbcDriver>
    <properties databaseName="jeesample" password="password" serverName="database" user="jeeuser"/>
  </dataSource>
  <basicRegistry id="basic" realm="BasicRealm">
    <user name="websphere" password="{xor}KDo9LC83Oi06"/>
  </basicRegistry>
  <ejbContainer>
    <timerService>
      <persistentExecutor taskStoreRef="mystore"/>
    </timerService>
  </ejbContainer>
  <databaseStore dataSourceRef="myds" id="mystore"/>
</server>

控制器端

<?xml version="1.0" encoding="UTF-8"?>
<server description="Collective Controller">
  <variable name="defaultHostName" value="controller"/>
  <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"/>
  <featureManager>
    <!--<feature>scalingController-1.0</feature>-->
    <feature>adminCenter-1.0</feature>
    <feature>dynamicRouting-1.0</feature>
  </featureManager>
  <remoteFileAccess>
    <writeDir>${server.config.dir}</writeDir>
  </remoteFileAccess>
  <!--<scalingDefinitions>
    <defaultScalingPolicy enabled="true" min="2" max="2"/>
  </scalingDefinitions>-->
  <include location="${server.config.dir}/resources/collective/collective-create-include.xml"/>
  <collectiveController user="adminUser" password="adminPassword"/>
</server>

1 个答案:

答案 0 :(得分:0)

默认情况下,当在Linux计算机(控制器和成员的主机)上正确配置并运行ssh时,您只需运行“集体连接”即可。来自成员的wlp / bin目录的命令。您不需要通过server.xml指定hostInfo和--sshPrivateKey,也不需要集体updateHost / registHost命令。此流程将使用集合生成的ssh密钥。

useHostCredentials标志通常用于与rpcUser和rpcUserPassword(通过registerHost,updateHost或server.xml提供)而不是ssh一起使用,对于没有配置ssh的系统(默认情况下为windows)特别有用。但是,它也可以用于指定自定义ssh密钥。

如果您仍然遇到问题,请提供从成员的wlp / bin运行的集合连接命令,以及控制器和成员的server.xml。