Menu

Sunday 23 February 2020

WebSphere ND Migration 7.0 to 8.0 / 9.0 on Same Machine.

Prequesties check:
1. Check O.S prerequisites.
2. Source WAS 7.0 should be completely stopped.
3. Disk space needs to be there. 
4. Targeted WAS 8.0 / 9.0 needs to be installed on a machine.
5. Increase the number of open files limits on the O.S level (ulimit -a).


Tools for Migration
a) Migration 9 GUI based (WCT tool).
b) Command-line (i) WASPreUpgrade (ii) WASPostUpgrade


I have three profiles in existing WAS 7.0(in my scenario), 
a) Dmgr01
b) Custom01
c) Custom02

NOTE: Before proceeding always take config or profile backup.


*****************************************************************************************************
Commands for backup.

a) Dmgr01 backup

Command:
./backupConfig.sh /app/WAS7-APP-ND/IBM/WebSphere/AppServer/profiles/Mig-Backup_Dmgr01.zip   
-profileName Dmgr01 





 b) Custom01 backup

Command:
./backupConfig.sh /app/WAS7-APP-ND/IBM/WebSphere/AppServer/profiles/Mig-Backup_Custom01.zip   
-profileName Custom01 







*****************************************************************************************************

  • Install New instance of WAS 8.0 / 9.0 on Machine.
  • IMP NOTE: Before proceeding, need to create the same profiles in WAS 8.0 / 9.0  with having the same nodeName, cell namehostname, servers instances & no applications.

*****************************************************************************************************

A) create the same profile "Dmgr01" in WAS 8.0 having same nodeName, cellName,  hostname , server instance & with no applications.

Command:
/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create   
-profileName Dmgr01 
-profilePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profiles/Dmgr01   
-templatePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profileTemplates/management   
-serverType DEPLOYMENT_MANAGER   
-nodeName Dmgr01Node  -cellName Dmgr01NodeCell -hostName MBox  -defaultPorts 
-enableAdminSecurity true -adminUserName was -adminPassword was123




B) create the same profile "Custom01" in WAS 8.0 / 9.0 having the same nodeName, cellName,  hostname, server instance & with no applications installed.

Command:
/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create  
-profileName Custom01 -defaultPorts  
-profilePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profiles/Custom01  
-templatePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profileTemplates/managed  
-nodeName Custom01Node  -cellName Custom01Cell  -hostName MBox -federateLater true





*****************************************************************************************************


Create a folder on targeted WAS 8.0, to place WASPreUpgrade migration command files.

Command:
mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01
mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01
mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom02












WASPreUpgrade 

  • NOTE: Stop all the WAS services on 7.0.
  • Run WASPreUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Dmgr01" profile.


Command:
/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/WASPreUpgrade.sh   
/app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01  
/app/WAS7-APP-ND/IBM/WebSphere/AppServer/    
-traceString Migration.Flow=finer:Migration.*=fine   
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01_WASPreUpgrade.trace  
-oldProfile Dmgr01   -username was   -password was123 




Reference URL :
https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websphere.migration.base.doc/ae/rmig_WASPreUpgrade.html

Syntax
*********************************************************************************
WASPreUpgrade.sh backupDirectory 
                 currentWebSphereDirectory
                 [-traceString trace_spec [-traceFile file_name ]]
                 [-machineChange true | false]
                 [-oldProfile profile_name]
                 [-workspaceRoot profile1=user_workspace_folder_name_1;profile2=user_workspace_folder_name_2]
                 [-username < user name >]
                 [-password < password >]
                 [-javaoption < -Xms...m > -javaoption < -Xmx...m > ]
                 [-requireEmbeddedDBMigration true | false]
                 [-keepDmgrEnabled true | false]
*********************************************************************************

Similarly  

  • Run WASPreUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Custom01" profile.

Command:
/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/WASPreUpgrade.sh   
/app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01  
/app/WAS7-APP-ND/IBM/WebSphere/AppServer/    
-traceString Migration.Flow=finer:Migration.*=fine   
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01_WASPreUpgrade.trace  -oldProfile Custom01   -username was   -password was123 





*********************************************************************************

*********************************************************************************

WASPostUpgrade 
  • Run WASPostUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Dmgr01" profile.


Command:
/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/WASPostUpgrade.sh  
/app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01  
-oldProfile Dmgr01  -profileName Dmgr01 -scriptCompatibility true   
-replacePorts false  -includeApps true  -keepAppDirectory false  
-traceString Migration.Flow=finer:Migration.*=fine 
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01_WASPostUpgrade.trace 
-username was   -password was123




https://www.ibm.com/support/knowledgecenter/SS7K4U_8.5.5/com.ibm.websphere.migration.nd.doc/ae/rmig_WASPostUpgrade.html

Syntax: 
*****************************************************************************************************
WASPostUpgrade.sh backupDirectory
                     [-username userID]
                     [-password password]
                     [-oldProfile profile_name]
                     [-profileName profile_name]
                     [-scriptCompatibility true | false]
                     [-portBlock port_starting_number]
                     [-backupConfig true | false]
                     [-replacePorts true | false]
                     [-includeApps true | false | script]
                     [-keepDmgrEnabled true | false]
                     [-requestTimeout seconds]
                     [-javaoption -Xms...m -javaoption -Xmx...m]
                     [[-appInstallDirectory user_specified_directory] | 
                      [-keepAppDirectory true | false]]
                     [-traceString trace_spec [-traceFile file_name]]
*****************************************************************************************************


IMP NOTE:
Start the Dmgr01 profile, and force delete the already federate nodes in dmgr from DMGR console.
Since it contains WAS 7.0 node agents.







  • Run WASPostUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Custom01" profile.


Command:
 /app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/WASPostUpgrade.sh  
/app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01  
-oldProfile Custom01  -profileName Custom01 -scriptCompatibility true   -replacePorts false  
-includeApps true  -keepAppDirectory false  
-traceString Migration.Flow=finer:Migration.*=fine 
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01_WASPostUpgrade.trace -username was   -password was123


NOTE: The above command will automatically federate the node, with the running Dmgr01 profile.







For understanding.
  1. stop WAS 7.0 services & profiles completely.
  2. take existing WAS 7.0 Backup.
  3. install WAS 8.0 and create same profiles on new WAS 8.0 /9.0 , having same nodeName, cellName,  hostname, server instance & with no applications.
  4. Run $WAS8_HOME/bin/WASPreUpgrade command, & save the pre upgrades migration files.
  5. Run $WAS8_HOME/bin/WASPostUpgrade command & for Dmgr01.
  6. Start WAS 8.0 Dmgr01 and force delete the nodes of WAS7.0
  7. Run $WAS8_HOME/bin/WASPostUpgrade command for Custom01, (it will automatically federate the nodes with WAS8.0 dmgr01)
  8. Do the same for Custom02 also.
  9. Clear all profiles wstemp, temp, tranlog & logs files.
  10. federate the nodes with dmgr and start node & servers instances.

Reference links: 

Thanks :-)




Friday 21 February 2020

WebSphere Application Server 7.0.0.X & FIXPACK install / Update on the non-default location.

Step 1: Download the WAS 7 binaries.


Step 2: Extract the above binaries.





Step 3: Use the "install" command for silent installation on the WAS7/WAS folder.



Step 4: Use below command for WebSphere Application Server 7.0.0.0 installation.

NOTE: Create an installation folder.
"/app/WAS7-APP/IBM/WebSphere/AppServer"

Command:-

./install  -silent -OPT silentInstallLicenseAcceptance="true" -OPT allowNonRootSilentInstall="false"  -OPT disableOSPrereqChecking="true" -OPT disableNonBlockingPrereqChecking="true" -OPT checkFilePermissions="true" -OPT installType="installNew" -OPT profileType="none" -OPT feature="samplesSelected" -OPT feature="languagepack.console.all" -OPT feature="languagepack.server.all" -OPT installLocation="/app/WAS7-APP/IBM/WebSphere/AppServer"












Step 5: Create a default (application-server) profile using "manageprofiles" command.

Command:-

./manageprofiles.sh -create -profileName AppSrv01 -profilePath "/app/WAS7-APP/IBM/WebSphere/AppServer/profiles/AppSrv01" -templatePath "/app/WAS7-APP/IBM/WebSphere/AppServer/profileTemplates/default" -enableAdminSecurity false






Step 6: Install UpdateInstaller setup tool.

NOTE: UpdateInstaller is used for FIXPACK upgrade (install) & FIXPACK downgrade (uninstall).

Command:-

./install -silent -OPT silentInstallLicenseAcceptance="true" -OPT -OPT allowNonRootSilentInstall="false" -OPT disableOSPrereqChecking="true" -OPT disableEarlyPrereqChecking="true" -OPT installLocation="/opt/IBM/WebSphere/UpdateInstaller" -OPT traceFormat=ALL







Step 7: SDK install "7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak" on the WAS application server.

Copy the downloaded "7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak"  to "/opt/IBM/WebSphere/UpdateInstaller/maintenance" folder.

NOTE:  Take reference from file  "/opt/IBM/WebSphere/UpdateInstaller/responsefiles/install.txt"

Command:-

./update.sh  -silent -OPT checkFilePermissions="true" -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking="true" -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type="install"

OR

/opt/IBM/WebSphere/UpdateInstaller/java/jre/bin/java -cp /opt/IBM/WebSphere/UpdateInstaller/update.jar -Xms256m -Xmx512m run -silent -OPT checkFilePermissions=true -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking=true -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type=install










Step 8: FIXPACK Update "7.0.0-WS-WAS-LinuxX64-FP0000043.pak" on the WAS application server.

Copy the downloaded "7.0.0-WS-WAS-LinuxX64-FP0000043.pak" to "/opt/IBM/WebSphere/UpdateInstaller/maintenance" folder.

take reference from file  "/opt/IBM/WebSphere/UpdateInstaller/responsefiles/install.txt"

Command:-

/opt/IBM/WebSphere/UpdateInstaller/java/jre/bin/java -cp /opt/IBM/WebSphere/UpdateInstaller/update.jar -Xms256m -Xmx512m run -silent -OPT checkFilePermissions=true -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WAS-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking=true -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type=install








Thanks :-)

Sunday 9 February 2020

Openssl Self-Signed SAN's certificate

Step 1: Create a file san.cnf file and add below content to it.

########################Create a file san.cnf file################

[ req ]
default_bits        = 2048
distinguished_name  = subject
x509_extensions     = x509_ext
string_mask         = utf8only

# The Subject DN can be formed using X501 or RFC 4514 (see RFC 4519 for a description).
#   Its sort of a mashup. For example, RFC 4514 does not provide emailAddress.
[ subject ]
countryName         = Country Name (2 letter code)
countryName_default = IN

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = MAH

localityName          = Locality Name (eg, city)
localityName_default  = MUM

organizationName         = Organization Name (eg, company)
organizationName_default = MBOX

# Use a friendly name here because it's presented to the user. The server's DNS

commonName          = Common Name (e.g. server FQDN or YOUR name)
commonName_default  = www.MBbox.com
emailAddress         = middlewarebox@gmail.com

# Section x509_ext is used when generating a self-signed certificate. I.e., openssl req -x509 ...
[ x509_ext ]

subjectKeyIdentifier    = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints       = CA:TRUE


#   omit keyEncipherment because that's key transport.
keyUsage          = digitalSignature, keyEncipherment
subjectAltName    = @alternate_names
nsComment         = "OpenSSL Generated Certificate"


[ alternate_names ]

DNS.1       = www.mbox123.com
DNS.2       = middlewarebox.com
DNS.3       = www.qwerty.com

###################################################################




Step 2: Use below the below command.

Command:
export OPENSSL_CONF=/etc/httpd/conf.d/san.cnf





Step 3: Below command and press enter till exit.
command:

openssl req -x509 -sha256 -nodes -days 1365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt





Step 4: Add these generated  Keyfile & certificate location  in apache-web (ssl.conf) file.





Step 5: Check from browser






Installation Manager (IM) on non-Administrator user.

What is IM?
Installation Manager is a tool that you can use to install and maintain your IBM software packages. 
The following steps can perform the install, modify, update, rollback, or uninstall your IBM products.


Step 1: Extract IM setup.

Step 2: Locate to $IM_SETUP/userinstc script for Installation using for command method.

Step 3: NOTE: Create a folder for "IM_installed" &  "IM_logs" on the installation path.

Command:

./userinstc -acceptLicense  
-installationDirectory /IBM_WAS/IBM/IM_installed  
-record /IBM_WAS/IBM/IM_installed/install.xml  
-dataLocation /IBM_WAS/IBM/IM_logs 
-showProgress


Where,
userinstc: To install silently (non-administrator) script for installation.
installationDirectory: Installation directory location.
record: To record installed steps.
dataLocation: For IMP installation Manager logs.
showProgress : For installation status.



Step 4: To check the installation location.




Step 5:  Locate to IM logs location, to check the logs file.




Step 6: command-line arguments actually passed.



Thanks :-)

Sunday 2 February 2020

httpd (Apache) Error: systemd-tty-ask-password-agent tool!

******************************************************************
[root@MBox conf.d]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.5.128. Set the 'ServerName' directive globally to suppress this message

Broadcast message from root@MBox (Sun 2020-02-02 22:37:10 IST):

Password entry required for 'Enter SSL pass phrase for 192.168.5.128:443 (RSA) :' (PID 4854).
Please enter password with the systemd-tty-ask-password-agent tool!


******************************************************************

[root@MBox conf.d]# httpd -v
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)


Option 1:

Step1: OpenSSL command to remove the passphrase (password)  form private key.

Command:
    openssl rsa -in privatekey-old.key -out privatekey-new.key








Step 2:
Comment below the line in "ssl.conf"

###SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog






Step 3: Add new privatekey-new certifiacte in ssl.conf file.




Step 4: start the httpd(Apache) services.

httpd -k start




Option 2: 

Step 1: Open ssl.conf file.




Step 2: Edit file "/usr/libexec/httpd-ssl-pass-dialog" for  SSLPassPhraseDialog 




Step 3: Comment below a line  &  Add   echo "123456"

*********************
######exec /bin/systemd-ask-password "Enter SSL pass phrase for $1 ($2) : "
*********************

Where,
123456 is a password for private key.





Step 4: Start the httpd(Apache) services.

httpd -k start





Thanks :-)