I wrote the following commands to help build an Informatica PowerCenter environment, after I had completed a fresh software installation on a new Linux server. The idea was to automate as many of the core steps as possible, rather than doing all the work in the admin console - for repeatability and documentation.

Add the License

1
2
3
4
5
6
7
8
#!/bin/ksh  

/home/informatica/PowerCenter8.6.1/server/bin/infacmd.sh AddLicense \  
  -DomainName               infadomain  \  
  -UserName                 admin       \  
  -Password                 admin123    \  
  -LicenseName              TestLicense \  
  -LicenseKeyFile           /home/informatica/license/XYZ_Corporation_0047591-Development1-MultiOS.key

Create the Repository Service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/ksh  

set -x  

tnsnames_path=/home/informatica/tnsnames.ora  
tnsnames_entry=infa  

db_connstring="jdbc:informatica:oracle:TNSNamesFile=${tnsnames_path};TNSServerName=${tnsnames_entry}"  

/home/informatica/PowerCenter8.6.1/server/bin/infacmd.sh CreateRepositoryService \  
  -DomainName               infadomain   \  
  -UserName                 admin        \  
  -Password                 admin123     \  
  -ServiceName              pcDev01Int   \  
  -NodeName                 node1        \  
  -BackupNodes              node2        \  
  -ServiceOptions                        \  
       CodePage="UTF-8"                  \  
       ConnectString=$db_connstring      \  
       DBPassword=infa_repos123          \  
       DBUser=infa_repos                 \  
       DatabaseType=oracle               \  
       RACacheCapacity=10000000          \  
       SecurityAuditTrail=Yes            \  
  -LicenseName              TestLicense  \  
  -FolderPath               /PowerCenter

Detailed Set-Up

Variables

The variables defined below will be used throughout the subsequent steps:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/ksh  

#-------------------------------------------------------------------  

#  
# 01 - SET UP SOME KEY VARIABLES  
#  

db_type=oracle  

tnsnames_path=/home/informatica/tnsnames.ora  
tnsnames_entry=infa  

db_address=orclserver:1521  
db_service=db_1  
db_connstring="jdbc:informatica:oracle:TNSNamesFile=${tnsnames_path};TNSServerName=${tnsnames_entry}"  

domdb_user=infa_domain  
domdb_pass=infa_domain123  

repdb_user=infa_repos  
repdb_pass=infa_repos123  

dom_name=infadomain  
dom_user=admin  
dom_pass=admin123  

node1_addr=infaserver2:6001  
node2_addr=infaserver:6001  

node1_name=node1  
node2_name=node2  

https=8444  

grid=pcDev02Grid  
repos_svc=pcDev02Repo  
integ_svc=pcDev02Int  

infa_home=/home/informatica/PowerCenter8.6.1  

license=/home/informatica/license/XYZ_Corporation_0047591-Development1-MultiOS.key  
logdir=$infa_home/server/infa_shared/log  
bakdir=$infa_home/server/infa_shared/Backup  
nodeopts=$infa_home/server/nodeoptions.xml  
keyfile=$infa_home/server/tomcat/conf/PC_DEFAULT.keystore

The following steps are covered below:

  • define the domain - and then start it
  • define the primary node
  • create the PowerCenter app folder
  • place the primary node in the new folder
  • define the backup node
  • add the backup node to the domain
  • define the repository service
  • define the integration service

These examples also use a grid - but many INFA installations probably do not have this option.

Domain and Primary Node

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#-------------------------------------------------------------------  

#  
# 02 - DEFINE THE DOMAIN AND PRIMARY NODE  
#  

# Shut down the domain  
$infa_home/server/tomcat/bin/infaservice.sh shutdown  
sleep 10  

# Define the replacement domain  

$infa_home/server/infasetup.sh DefineDomain    \  
  -DatabaseConnectionString $db_connstring     \  
  -DatabaseUserName         $domdb_user        \  
  -DatabasePassword         $domdb_pass        \  
  -DatabaseType             $db_type           \  
  -DomainName               $dom_name          \  
  -AdministratorName        $dom_user          \  
  -Password                 $dom_pass          \  
  -LogServiceDirectory      $logdir            \  
  -NodeName                 $node1_name        \  
  -NodeAddress              $node1_addr        \  
  -HttpsPort                $https             \  
  -KeystoreFile             $keyfile           \  
  -MinProcessPort           6005               \  
  -MaxProcessPort           6105               \  
  -BackupDirectory          $bakdir            \  
  -ResourceFile             $nodeopts          \  
  -TimeZone                 GMT-08:00          \  
  -Force  

retcode=$?  
    
echo  
echo Step 02 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

# Start up the domain  
$infa_home/server/tomcat/bin/infaservice.sh startup  
sleep 10  

PowerCenter Folder

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-------------------------------------------------------------------  

#  
# 03 - CREATE THE POWERCENTER FOLDER  
#  

$infa_home/server/bin/infacmd.sh CreateFolder  \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -FolderName               PowerCenter        \  
  -FolderPath               /  

retcode=$?  
    
echo  
echo Step 03 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

Move Node to Folder

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#-------------------------------------------------------------------  

#  
# 04 - MOVE PRIMARY NODE INTO THE FOLDER  
#  

$infa_home/server/bin/infacmd.sh MoveObject    \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -ObjectName               $node1_name        \  
  -ObjectType               Node               \  
  -FolderPath               /PowerCenter  

retcode=$?  
    
echo  
echo Step 04 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

exit  

Backup Node

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#-----------------------------------------------------------------  

#  
# 05 - DEFINE THE BACKUP NODE  
#  

$infa_home/server/infasetup.sh DefineGatewayNode \  
  -DatabaseAddress          $db_address        \  
  -DatabaseUserName         $domdb_user        \  
  -DatabasePassword         $domdb_pass        \  
  -DatabaseType             $db_type           \  
  -DatabaseServiceName      $db_service        \  
  -DomainName               $dom_name          \  
  -NodeName                 $node2_name        \  
  -NodeAddress              $node2_addr        \  
  -HttpsPort                $https             \  
  -KeystoreFile             $keyfile           \  
  -MinProcessPort           6005               \  
  -MaxProcessPort           6105               \  
  -LogServiceDirectory      $logdir            \  
  -BackupDirectory          $bakdir            \  
  -ResourceFile             $nodeopts  

retcode=$?  
    
echo  
echo Step 05 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

Add Backup to Domain

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-------------------------------------------------------------------  

#  
# 06 - ADD THE BACKUP NODE TO THE DOMAIN  
#  

$infa_home/server/bin/infacmd.sh AddDomainNode \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -NodeName                 $node2_name        \  
  -FolderPath               /PowerCenter  

retcode=$?  
    
echo  
echo Step 06 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

Start Backup Node

1
2
3
4
5
#-------------------------------------------------------------------  

#  
# 07 - START BACKUP NODE  
#  

Create Grid

Assuming you have this option. You may not.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#-------------------------------------------------------------------  

#  
# 08 - CREATE THE GRID  
#  

$infa_home/server/bin/infacmd.sh CreateGrid    \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -GridName                 $grid              \  
  -NodeList                 $node1_name $node2_name \  
  -FolderPath               /PowerCenter  

retcode=$?  
    
echo  
echo Step 08 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

Repository Service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#-------------------------------------------------------------------  

#  
# 09 - DEFINE THE REPOSITORY SERVICE  
#  

# WARNING - don't see a way to make the repository versioned!  

$infa_home/server/bin/infacmd.sh CreateRepositoryService \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -ServiceName              $repos_svc         \  
  -NodeName                 $node1_name        \  
  -BackupNodes              $node2_name        \  
  -ServiceOptions                              \  
       CodePage=UTF-8                          \  
       ConnectString=$db_service               \  
       DBPassword=$repdb_pass                  \  
       DBUser=$repdbuser                       \  
       DatabaseType=$db_type                   \  
       RACacheCapacity=10000000                \  
       SecurityAuditTrail=Yes                  \  
  -LicenseName              $license           \  
  -FolderPath               /PowerCenter  

retcode=$?  
    
echo  
echo Step 09 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi  

Integration Service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#-------------------------------------------------------------------  

#  
# 10 - DEFINE THE INTEGRATION SERVICE  
#  

$infa_home/server/bin/infacmd.sh CreateIntegrationService \  
  -DomainName               $dom_name          \  
  -UserName                 $dom_user          \  
  -Password                 $dom_pass          \  
  -ServiceName              $repos_svc         \  
  -FolderPath               /PowerCenter       \  
  -GridName                 $grid              \  
  -NodeName                 $node1_name        \  
  -BackupNodes              $node2_name        \  
  -RepositoryService        $repos_svc         \  
  -RepositoryUser           $repdb_user        \  
  -RepositoryPassword       $repdb_pass        \  
  -ServiceOptions                              \  
       DataMovementMode=Unicode                \  
       ConnectString=$db_service               \  
       DBPassword=$repdb_pass                  \  
       DBUser=$repdbuser                       \  
       DatabaseType=$db_type                   \  
       RACacheCapacity=10000000                \  
       SecurityAuditTrail=Yes                  \  
  -ServiceProcessOptions                       \  
       CodePage=UTF-8                          \  
  -LicenseName              $license           \  
  -FolderPath               /PowerCenter  

retcode=$?  
    
echo  
echo Step 10 return code = $retcode  
echo  

if [ $retcode -ne 0 ]  
then  
  exit 1  
fi