管理サーバーのT3/T3Sチャネルの公開

リスニング・ポートlisten_portとペア・パブリック・ポートpublic_portを持つ管理サーバーのカスタムT3/T3Sチャネルを作成するには:

  1. 次の内容でt3_admin_config.pyを作成します:
    admin_pod_name = sys.argv[1]
    admin_port = sys.argv[2]
    user_name = sys.argv[3]
    password = sys.argv[4]
    listen_port = sys.argv[5]
    public_port = sys.argv[6]
    public_address = sys.argv[7]
    AdminServerName = sys.argv[8]
    channelType = sys.argv[9]
    print('custom admin_pod_name : [%s]' % admin_pod_name);
    print('custom admin_port : [%s]' % admin_port);
    print('custom user_name : [%s]' % user_name);
    print('custom password : ********');
    print('public address : [%s]' % public_address);
    print('channel listen port : [%s]' % listen_port);
    print('channel public listen port : [%s]' % public_port);
    connect(user_name, password, 't3://' + admin_pod_name + ':' + admin_port)
    edit()
    startEdit()
    cd('/')
    cd('Servers/%s/' % AdminServerName )
    if channelType == 't3':
       create('T3Channel_AS','NetworkAccessPoint')
       cd('NetworkAccessPoints/T3Channel_AS')
       set('Protocol','t3')
       set('ListenPort',int(listen_port))
       set('PublicPort',int(public_port))
       set('PublicAddress', public_address)
       print('Channel T3Channel_AS added')
    elif channelType == 't3s':	  
       create('T3SChannel_AS','NetworkAccessPoint')
       cd('NetworkAccessPoints/T3SChannel_AS')
       set('Protocol','t3s')
       set('ListenPort',int(listen_port))
       set('PublicPort',int(public_port))
       set('PublicAddress', public_address)
       set('HttpEnabledForThisProtocol', true)
       set('OutboundEnabled', false)
       set('Enabled', true)
       set('TwoWaySSLEnabled', true)
       set('ClientCertificateEnforced', false)
    else:
       print('channelType [%s] not supported',channelType)  
    activate()
    disconnect()
    
  2. t3_admin_config.pyを管理サーバー・ポッド(たとえば、soansネームスペースのsoainfra-adminserver)のドメイン・ホーム(たとえば、/u01/oracle/user_projects/domains/soainfra)にコピーします。
     $ kubectl cp t3_admin_config.py soans/soainfra-adminserver:/u01/oracle/user_projects/domains/soainfra
    
  3. 次のパラメータを使用し、管理サーバー・ポッドに対するexecを使用してwlst.sh t3_admin_config.pyを実行します:
    • admin_pod_name: soainfra-adminserver # 管理サーバー・ポッド
    • admin_port: 7001
    • user_name: weblogic
    • password: Welcome1 # weblogicパスワード
    • listen_port: 30014 # T3管理サーバーの新規ポート
    • public_port: 30014 # 外部でT3ポートを公開するために使用されるKubernetes NodePort
    • public_address:
    • AdminServerName: AdminServer # 管理サーバー名の指定
    • channelType: t3 # t3またはt3sプロトコル・チャネル
    kubectl exec -it <Administration Server pod> -n <namespace> -- /u01/oracle/oracle_common/common/bin/wlst.sh  <domain_home>/t3_admin_config.py <Administration Server pod>  <Administration Server port>  weblogic <password for weblogic> <t3 port on Administration Server> <t3 nodeport> <master_ip> <AdminServerName> <channelType t3 or t3s>
    

    例:

    kubectl exec -it soainfra-adminserver -n soans -- /u01/oracle/oracle_common/common/bin/wlst.sh /u01/oracle/user_projects/domains/soainfra/t3_admin_config.py soainfra-adminserver  7001 weblogic Welcome1 30014 30014 xxx.xxx.xxx.xxx AdminServer t3
    
  4. 次の内容でt3_admin_svc.yamlを作成し、domainNameおよびdomainUIDがsoainfrasoansネームスペースにデプロイされたドメインに対してNodePort 30014でT3を公開します。

    ノート:

    T3Sの場合は、前のステップでwlst.shを使用してT3Sチャネルを作成する際にpublic_portで使用した適切な値でNodePort 30014を置き換えます。
    apiVersion: v1
    kind: Service
    metadata:
       name: soainfra-adminserver-t3-external
       namespace: soans
       labels:
         weblogic.serverName: AdminServer
         weblogic.domainName: soainfra
         weblogic.domainUID: soainfra
    spec:
      type: NodePort
      selector:
        weblogic.domainName: soainfra
        weblogic.domainUID: soainfra
        weblogic.serverName: AdminServer
      ports:
      - name: t3adminport
        protocol: TCP
        port: 30014
        targetPort: 30014
        nodePort: 30014
    
  5. ポート30014のNodePortサービスを作成します:
    kubectl create -f t3_admin_svc.yaml
    
  6. 次のURLを使用して、管理サーバーのT3にアクセスできることを確認します:
    t3://<master_ip>:30014
    
  7. 同様に、次のようにT3Sにアクセスできます:
    1. まず、クライアントから保護された(T3S)接続に使用する証明書を管理サーバーから取得します。WLSTコマンドを使用して、管理サーバーから証明書をエクスポートできます。たとえば、デフォルトのdemoidentityをエクスポートするには:

      ノート:

      カスタムSSL証明書を使用している場合は、ステップを適宜置き換えます。
      kubectl exec -it soainfra-adminserver -n soans -- bash
      /u01/oracle/oracle_common/common/bin/wlst.sh
      connect('weblogic','Welcome1','t3://soainfra-adminserver:7001')
      svc = getOpssService(name='KeyStoreService')
      svc.exportKeyStoreCertificate(appStripe='system', name='demoidentity', password='DemoIdentityKeyStorePassPhrase', alias='DemoIdentity', type='Certificate', filepath='/tmp/cert.txt/')
      

      これらのステップでは、/tmp/cert.txtで証明書をダウンロードします。

    2. クライアント側から同じ証明書を使用し、t3sを使用して接続します。例:
      export JAVA_HOME=/u01/jdk
      keytool -import -v -trustcacerts -alias soadomain -file cert.txt -keystore $JAVA_HOME/lib/security/cacerts -keypass changeit -storepass changeit
      export WLST_PROPERTIES="-Dweblogic.security.SSL.ignoreHostnameVerification=true"
      cd $ORACLE_HOME/oracle_common/common/bin
      ./wlst.sh
        Initializing WebLogic Scripting Tool (WLST) ...
        Welcome to WebLogic Server Administration Scripting Shell
        Type help() for help on available commands
      wls:/offline> connect('weblogic','Welcome1','t3s://<Master IP address>:30014')