Search This Blog

Monday, January 25, 2016

Multitenancy in WebLogic 12c Part -5: Identity Domain (IDD) for Partition

Welcome back to the series of Multitenancy experiments on partitioned domain.


Resource groups in WebLogic Multitenancy Domain partition
Prerequsites
  1. Configure Security Realm
  2. Create Users & Groups for Partition domain
  3. Configure Virtual Target
  4. Creating Partition Domain
  5. Configure IDD for Partition
  6. Partition Control (start/stop using WLST)


def add_IDD4_Partition(realmName, partitionName, primary_IDD ): 
 """
 This function is developed for generic  use to adding Identity domain 
 to a partition domain.
 """
 sec = cmo.getSecurityConfiguration()
 sec.setAdministrativeIdentityDomain("AdminIDD")
 
 realm = cmo.getSecurityConfiguration().lookupRealm(realmName)
 
 # Authentication 
 defAtnP = realm.lookupAuthenticationProvider('ATNPartition')
 defAtnP.setIdentityDomain(primary_IDD)
 defAtnA = realm.lookupAuthenticationProvider('ATNAdmin')
 defAtnA.setIdentityDomain("AdminIDD")
 
 # Search for the Partition and set it as primary IDD
 p= cmo.lookupPartition(partitionName)
 p.setPrimaryIdentityDomain(primary_IDD)
 
 # For Default realm setting the IDD
 realm = sec.getDefaultRealm()
 defAtn = realm.lookupAuthenticationProvider('DefaultAuthenticator')
 defAtn.setIdentityDomain("AdminIDD")
 
 
def main():
 connect("weblogic","welcome1","t3://192.168.33.100:6100")
 edit()
 startEdit()
 
 add_IDD4_Partition('Corporate_Realm', "Corporate_partition", "Corporate_IDD" )
 add_IDD4_Partition('Online_Realm', "Online_partition", "Online_IDD" )
 
 save()
 activate()
 disconnect()
 
main()



Lets run the script that will add the Identity Domain for each partition.

WebLogic Multitenancy Partition domain with Security Realm
Select the Corporate Realm in the Security


Now select one of the security realm which you have created for the partition.




Sunday, January 17, 2016

Multitenancy in WebLogic 12c Part -4: Creating Partiton domain

Welcome back to the series of Multitenancy experiments on partitioned domain.

  1. Configure Security Realm
  2. Create Users & Groups for Partition domain
  3. Configure Virtual Target
  4. Creating Partition Domain
WebLogic domain partitions are an administrative and runtime slice of a WebLogic domain that is dedicated to running application instances and related resources for different tenant.
def create_Partition(vtName, partitionName, rgName, realmName):
        """
        This function programmed for creating partition in WebLogic domain
        it takes four arguments virtual target, Partition Name, Resource Group
        and Security Realm Name.

        """
        vt = cmo.lookupVirtualTarget(vtName)
        p = cmo.createPartition(partitionName)
        p.addAvailableTarget(vt)
        p.addDefaultTarget(vt)
        rg=p.createResourceGroup(rgName)
        rg.addTarget(vt)
        realm = cmo.getSecurityConfiguration().lookupRealm(realmName)
        p.setRealm(realm)

def main():
        connect("weblogic","welcome1","t3://192.168.33.100:6100")
        edit()
        startEdit()
        create_Partition("Online_vt","Online_partition","Online_rg",'Online_Realm')
        create_Partition("Corporate_vt","Corporate_partition","Corporate_rg",'Corporate_Realm')
        save()
        activate()
        disconnect()

main()

creating partition requires partition name, there should be resource group which can be created with default or you can have your own template for resource group. The resources could be JMS, JDBC Data source, JCA, JTA

WLST Script for create partition on WebLogic domain


admin console output

Partition successful execution of WLST 
Note: After you configure the new partitions in the domain you must restart the environment.

Multitenancy in WebLogic 12c Part -3: Create Virtual target for the Partition Domain

Create Virtual target for the Partition Domain

Welcome back to the series of Multitenancy experiments with WLST.

  1. Configure Security Realm
  2. Create Users & Groups for Partition domain
  3. Configure Virtual Target

In this sample virtual target is targeted to the admin server, you can also target to cluster. The uri prefix is /corporate This is the url prefix used for making JMX connections to  MBeanServer.

In this example you could find the re-usability of the functions easy to call them!




def create_VirtualTarget(vt_name, uriPrefix, serverName):
        """
        This method is developed for create Virtual Targets
        based on three arguments Virtual Target Name, URI prefix and actual physical target
        """
        vt = cmo.createVirtualTarget(vt_name)
        vt.setHostNames(array(["192.168.33.100"],java.lang.String))
        vt.setUriPrefix(uriPrefix)
        as = cmo.lookupServer(serverName)
        vt.addTarget(as)

def main():
        connect("weblogic","welcome1","t3://192.168.33.100:6100")
        edit()
        startEdit()
        create_VirtualTarget("Corporate_vt", "/corporate","tr_admin")
        create_VirtualTarget("Online_vt", "/online","tr_admin")
        save()
        activate()
        disconnect()

main()

Execute it with the following way!
 wlst createVirtualTargets.py


Execution of WLST Script for create Virtual Targets for partition domain 

On the WebLogic Admin Console you could select the domain structure expand "Environment" branch. You can select Virtual Target on the tree.

domain Structure with Virtual Target
On the work area you could see following screen :

WebLogic 12.2.1 Virtual Target configuration WLST
Virtual Target configuration using WLST




Popular Posts