Installation - technical details
Database server
When creating a new environment, scripts automatically set up the users and databases of the created environment. All names are created by convention. For an environment named „MYAPP” and running on the MYDBENGINGE database engine (SQLServer or PostgreSQL), the following operations are performed (the paths given are relative paths to the directory of the archITect image installation):
- Create users (when the application runs on a system account):
- MYAPP_ADMIN,
- MYAPP_USER,
or (when the application connects to the database using Windows authentication - for SQL Server only)
- register the user specified in the
applicationCredentialAdminUserparameter as a database user by treating it as MYAPP_USER. - If the
applicationCredentialAdminUserparameter is specified, they create this user as a database owner. If the parameter is not specified, the database owner is the user running the PowerShell script.
Database script:
.\Database\ScriptsMASTER\MASTER\_RUNTIME\MYDBENGINGE\!INITIALIZATION\ 001\_CreateLoginInMaster.sql
- Create environment databases. If databases with these names existed when the new environment was created, they are overwritten. The names of the databases created:
- MYAPP_CONFIG,
- MYAPP_DATA,
- MYAPP_SCHEDULER,
- MYAPP_VIP,
- MYAPP_VERSION_SERVER*
* - database created only if database version server is selected.
Database script:
.\Database\ScriptsMASTER\MASTER_RUNTIME\MYDBENGINGE\!INITIALIZATION\*CreateDatabase*.sql
Database script for VERSION_SERVER database (for SQL Server only):
\Database\ScriptsMASTER\MASTER_PROJECT\MYDBENGINGE\!INITIALIZATION\*CreateDatabase*.sql
- Grant permissions to MYAPP_ADMIN, MYAPP_USER users (or designated domain users) on individual databases, and database schemas, and create the
_DATABASE_UPDATE_JOURNALtable, which will record the running of all application scripts on a given database.
Database script (insert the appropriate database in place of [database name]):
.\Database\ScriptsMASTER\[nazwa bazy]\MYDBENGINGE\
The above scripts are run on the database server's super-administrator privileges.
Once created:
- users dedicated to a particular application (having access only to the databases of that application),
- databases of the dedicated application
- giving users the required rights,
database server super-administrator account is not used as part of running application update scripts. All subsequent database modification scripts are run by the user „MYAPP_ADMIN” and are based on the permissions granted to the user.
This applies only if the application uses local database users. When using domain users, the application update scripts are run with the privileges of the user running the PowerShell script.
The scripts are placed in the directory:
.\Database\Scripts\[database name]\MYDBENGINGE\
Application server
The installation installs all components of the environment in the indicated runtime directory (the runtimeFolder/app parameter in the default.runtime.json file).
Installation scripts installing the software perform the following actions (AppInstall function in the .\InstallOnPremises.ps1 file):
- Enable required windows features (
Install-ARCHWindowsRequiredFeaturesfunction in the.\InstallToolsDeploymentTools.psm1file). - In case the application runs on a domain user, they grant permissions to use the ports (netsh http add urlacl) used by the services (80 or 443 or the specified specific port
appServerCustomWcfPortin thedefault.runtime.jsonfile). - If the application runs on a domain user, they give the permissions for the operation of services on that user's account (
Grant-VSOFTLogOnAsServicefunction in the.\InstallTools.psm1file). - If you specify a certificate for the application server, they assign this certificate (netsh http add sslcert) to the port on which the application runs for all IPs (0.0.0.0); In addition, if the application runs on a domain user is granted access rights to the private key of the indicated certificate.
- They add firewall rules to allow communication on the ports on which the application services are running and the port on which communication after ZMQ is running.
- They install application services. For an environment named “MYAPP,” the service names are as follows (display name in parentheses):
- VSoft_MYAPP_Service (MYAPP: VSoft Service)
- VSoft_MYAPP_Workflow (MYAPP: VSoft Workflow)
- VSoft_MYAPP_Transformation (MYAPP: VSoft Transformation)
- VSoft_MYAPP_Scheduler (MYAPP: VSoft Scheduler)
- VSoft_MYAPP_Document (MYAPP: VSoft Document)
WWW server
The installation installs all components of the environment in the indicated runtime directory (runtimeFolder/web parameter in the default.runtime.json file).
Installation scripts installing the software perform the following actions (AppInstall function in the .\InstallOnPremises.ps1 file):
- They enable the required windows features (
Install-ARCHWindowsRequiredFeaturesfunction in the.\InstallToolsDeploymentTools.psm1file). - If a server certificate is specified, they connect it to the specified WebSite.
- If installing an application that uses SSL, they perform TLS 1.2 enablement (function
Update-VSOFTIISConfigurationForTLSin the.\InstallTools\InstallTools.psm1file). - They install web applications for each by creating a separate AppPool. For an environment named “MYAPP”, the pool names are as follows (in parentheses, the names of the Web applications):
- MYAPP_AppPool (MYAPP application)
- MYAPP_SchedulerPool (MYAPP-Scheduler application)
- MYAPP_VipPool (MYAPP-VIP application)
Cluster failover
When installing software, installation scripts perform the following actions (FailoverClusterResourcesInstallOrUpdate function in the .\InstallOnPremises.ps1 file):
- They add services to the indicated cluster group (
InstallOrUpdate-VSOFTClusterResourcefunction in the.\InstallOnPremises.ps1file). For an environment named “MYAPP”, the names of the created cluster resources are as follows:
- VSoft_MYAPP_ServiceClusterResource
- VSoft_MYAPP_WorkflowClusterResource
- VSoft_MYAPP_TransformationClusterResource
- VSoft_MYAPP_SchedulerClusterResource
- VSoft_MYAPP_DocumentClusterResource
- Set their
RestartActionproperty toClusterResourceRestartNoNotify(disable the “if restart is unsuccesfull, fail over all resources in this Role” option).