For customers looking to Automate the latest release of Site Recovery Manager 6.0 / 6.1 with an Embedded vPostgres DB, you may have found that my previous deployment scripts for SRM 5.8 no longer work with the latest release. The reason for this is that SRM 6.x now supports the Platform Services Controller (PSC) and in doing so, there are a couple of new silent installer flags that are now required. With the help of the SRM Engineering team, I was able to modify my script to include these new options for automating the silent installation of both SRM 6.0 and 6.1. You can download the new script called install_srm6x.bat.
Before using this script, I highly recommend that you take a look my previous article here which provides more details on how the script works in general.
There are 5 new silent options that have been introduced with SRM 6.x which are all required:
- PLATFORM_SERVICES_CONTROLLER_HOST - The hostname of the Platform Services Controller
- PLATFORM_SERVICES_CONTROLLER_PORT - The port for the PSC, default is 443 (recommend leaving this the default)
- PLATFORM_SERVICES_CONTROLLER_THUMBPRINT - PSC SSL SHA1 Thumbprint (Must be in all CAPS)
- SSO_ADMIN_USER - The SSO Administrator account (e.g. *protected email*)
- SSO_ADMIN_PASSWORD - The SSO Administrator password
In addition to the above options, you will still need to populate the following options below and the script outlines which options need to be modified before running the script.
- SRM_INSTALLER - The full path to the SRM 6.x installer
- DR_TXT_VCHOSTNAME - vCenter Server Hostname
- DR_TXT_VCUSR - vCenter Server Username
- DR_TXT_VCPWD - vCenter Server Password
- VC_CERTIFICATE_THUMBPRINT - vCenter Server SSL SHA1 Thumbprint (Must be in all CAPS)
- DR_TXT_LSN - SRM Local Site Name
- DR_TXT_ADMINEMAIL - SRM Admin Email Address
- DR_CB_HOSTNAME_IP - SRM Server IP/Hostname
- DR_TXT_CERTPWD - SSL Certificate Password
- DR_TXT_CERTORG - SSL Certificate Organization Name
- DR_TXT_CERTORGUNIT - SSL Certification Organization Unit Name
- DR_EMBEDDED_DB_DSN - SRM DB DSN Name
- DR_EMBEDDED_DB_USER - SRM DB Username
- DR_EMBEDDED_DB_PWD - SRM DB Password
- DR_SERVICE_ACCOUNT_NAME - Windows System Account to run SRM Service
Note: If you deployed either your vCenter Server or PSC using FQDN, be sure to specify that for both DR_TXT_VCHOSTNAME and PLATFORM_SERVICES_CONTROLLER_HOST. This is a change in behavior compared to SRM 5.8 which only required the IP Address of the vCenter Server.
If you run into any issues, you can take a look at the logs that are generated. From what I have seen, you will normally get a 1603 error code which you need to step back through the logs and eventually you will see the actual error.
railroadmanuk says
Great post William, and good to see this getting an update. I am trying to script this with an external SQL server, and think I have what I need, but I am seeing the same error you referenced in your previous post '“Srm::Installation::CisRegistration::ValidateVc: ERROR: Failed to retrieve VC Node ID. The map is empty”'. Did you ever figure out what was causing this? My topology is 2 x replicated PSCs, and 2 x vCSA servers in the same SSO domain, and it looks like the XML file created from the inventory service query is enumerating both of these but not getting rid of the wrong one out of there.
railroadmanuk says
My bad, was case sensitivity on the 'DR_TXT_VCHOSTNAME' variable, thanks William
railroadmanuk says
To make this work with an external DB, replace:
::Used the embedded vPostgres database server - Default 1
set DR_USES_EMBEDDED_DB=1
::Embedded DB Data Source Name <---------REQUIRE EDITING BY USER
set DR_EMBEDDED_DB_DSN=srmdb
::Embedded DB User Name <---------REQUIRE EDITING BY USER
set DR_EMBEDDED_DB_USER=srm
::Embedded DB Password <---------REQUIRE EDITING BY USER
set DR_EMBEDDED_DB_PWD=VMware1!
::Embedded DB Port - Default 5678
set DR_EMBEDDED_DB_PORT=5678
With:
::Used the embedded vPostgres database server - Default 1
set DR_USES_EMBEDDED_DB=0
:: SQL Server Connection Details
set DR_TXT_DBUSR=
set DR_TXT_DBPWD=
set DR_TXT_DSN=
And the executable line of the script with:
"%SRM_INSTALLER%" /s /v"/l*vx %SRM_INSTALL_LOG% /qr AgreeToLicense=Yes INSTALLDIR=\"%INSTALLDIR%\" DR_TXT_VCHOSTNAME=%DR_TXT_VCHOSTNAME% VC_CERTIFICATE_THUMBPRINT=\"%VC_CERTIFICATE_THUMBPRINT%\" PLATFORM_SERVICES_CONTROLLER_HOST=%PLATFORM_SERVICES_CONTROLLER_HOST% PLATFORM_SERVICES_CONTROLLER_PORT=%PLATFORM_SERVICES_CONTROLLER_PORT% PLATFORM_SERVICES_CONTROLLER_THUMBPRINT=\"%PLATFORM_SERVICES_CONTROLLER_THUMBPRINT%\" SSO_ADMIN_USER=\"%SSO_ADMIN_USER%\" SSO_ADMIN_PASSWORD=\"%SSO_ADMIN_PASSWORD%\" DR_TXT_LSN=\"%DR_TXT_LSN%\" DR_TXT_ADMINEMAIL=\"%DR_TXT_ADMINEMAIL%\" DR_CB_HOSTNAME_IP=%DR_CB_HOSTNAME_IP% DR_RB_PLUGIN_ID=%DR_RB_PLUGIN_ID% DR_TXT_EXTKEY=\"%DR_TXT_EXTKEY%\" DR_TXT_PLUGIN_COMPANY=\"%DR_TXT_PLUGIN_COMPANY%\" DR_TXT_PLUGIN_DESC=\"%DR_TXT_PLUGIN_DESC%\" DR_RB_CERTSEL=%DR_RB_CERTSEL% DR_TXT_CERTPWD=\"%DR_TXT_CERTPWD%\" DR_TXT_CERTFILE=\"%DR_TXT_CERTFILE%\" DR_TXT_CERTORG=\"%DR_TXT_CERTORG%\" DR_TXT_CERTORGUNIT=\"%DR_TXT_CERTORGUNIT%\" DR_TXT_CONNCNT=%DR_TXT_CONNCNT% DR_TXT_MAXCONNS=%DR_TXT_MAXCONNS% DR_SERVICE_ACCOUNT_NAME=\"%DR_SERVICE_ACCOUNT_NAME%\" DR_USES_EMBEDDED_DB=0 DR_CB_DC=\"%DR_CB_DC%\" DR_TXT_DSN=\"%DR_TXT_DSN%\" DR_TXT_DBUSR=\"%DR_TXT_DBUSR%\" DR_TXT_DBPWD=\"%DR_TXT_DBPWD%\" DR_TXT_VCLOCAL=%DR_TXT_VCLOCAL% DR_ACCEPT_THUMBPRINT=%DR_ACCEPT_THUMBPRINT% DR_RB_EXISTDBSEL=%DR_RB_EXISTDBSEL%"
Hope this helps people 🙂
Matt says
William, do you have any "unsupported" advice for working with SRM's postgres database? Simply trying to log into the db and poke around for info and having a heck of a time.