Creating cluster members using scripting

Use the wsadmin tool to create cluster members in application server, generic server, web server, and proxy server clusters.

Before you begin

There are multiple ways to complete this task. This topic uses the AdminConfig object to create cluster members in your environment. Alternatively, you can use the ClusterConfigCommands command group for the AdminTask object or the createClusterMember script in the AdminClusterManagement script library to create and configure clusters.

About this task

The template options are available only for the first cluster member that you create. All cluster members that you create after the first member will be identical. A template is stored in the cluster scope that you must use to create additional cluster members.

Procedure

  1. Start the wsadmin scripting tool.
  2. There are two ways to perform this task. Choose one of the following:
    • Using the AdminTask object:
      • Using Jacl:

        $AdminTask createClusterMember {-interactive}
      • Using Jython:
        AdminTask.createClusterMember ('[-interactive]')
    • Using the AdminConfig object:
      1. Identify the existing cluster and assign it to the cluster variable:
        • Using Jacl:

          set cluster [$AdminConfig getid /ServerCluster:myCluster1/]
          
        • Using Jython:
          cluster = AdminConfig.getid('/ServerCluster:myCluster1/')
          print cluster
        Example output:
        myCluster1(cells/mycell/clusters/myCluster1|cluster.xml#ServerCluster_1)
      2. Identify the node to create the new server and assign it to the node variable:
        • Using Jacl:

          set node [$AdminConfig getid /Node:mynode/]
          
        • Using Jython:
          node = AdminConfig.getid('/Node:mynode/')
          print node

        Example output:

        mynode(cells/mycell/nodes/mynode|node.xml#Node_1)
      3. (Optional) Identify the cluster member template and assign it to the serverTemplate variable:
        • Using Jacl:

          set serverTemplate [$AdminConfig listTemplates Server]
        • Using Jython:
          serverTemplate = AdminConfig.listTemplates('Server')
          print serverTemplate
        Example output:
        server1(templates/default/nodes/servers/server1|server.xml#Server_1)
      4. Create the new cluster member, by using the createClusterMember command.
        • The following example creates the new cluster member, passing in the existing cluster configuration ID, existing node configuration ID, and the new member attributes:
          • Using Jacl:

            $AdminConfig createClusterMember $cluster $node {{memberName clusterMember1}}
          • Using Jython:
            AdminConfig.createClusterMember(cluster, node, [['memberName', 'clusterMember1']])
        • The following example creates the new cluster member with a template, passing in the existing cluster configuration ID, existing node configuration ID, the new member attributes, and the template ID:
          • Using Jacl:

            $AdminConfig createClusterMember $cluster $node 
            {{memberName clusterMember1}} $serverTemplate
          • Using Jython:
            print AdminConfig.createClusterMember(cluster, node, 
            [['memberName',  'clusterMember1']], serverTemplate)
          Example output:
          clusterMember1(cells/mycell/clusters/myCluster1|cluster.xml$ClusterMember_2)
  3. Save the configuration changes.
    Use the following command example to save your configuration changes:
    AdminConfig.save()
  4. In a network deployment environment only, synchronize the node.
    Use the syncActiveNodes script in the AdminNodeManagement script library to propagate the changes to all active nodes, as the following example demonstrates:
    AdminNodeManagement.syncActiveNodes()