Setup Required Before Installing the Windchill AI Assistant Plugin for On-prem Environment
|
|
This topic is intended for administrators setting up the Windchill on-prem system.
|
Administrators must complete the following prerequisites before installing the plugin:
Configure the Windchill Server
Before installing the AI plugin on your Windchill environment, ensure that your system meets the configuration requirements outlined in
Supported Versions and Requirements. Meeting these requirements is essential for compatibility, performance, and stability of the plugin within the Windchill ecosystem.
For more information on configuring the Windchill server, see
Installing Windchill and the Installation Process Flow.
Because the plugin will be hosted on the same machine as the Method Server, additional memory is required to ensure smooth operation.
Apache Server Configuration—The plugin utilizes the following authentication methods through Apache:
• Basic Auth—Simple username/password access
• SSO SAML
• CAC-PKI (client certificate)—Strong authentication using SSL certificates
Update Apache Settings Manually
When installing the latest CPS version that supports the Plugin Manager functionality with Preserve Apache Settings, the Apache server is not updated during the upgrade process. This means that the existing Apache configuration remains unchanged, and any new configuration changes introduced in the update are not applied automatically. To manually apply the required Apache configuration changes, follow the steps below.
Execute these steps, which are commonly applicable for all authentication types (SAML SSO or Basic Authentication):
1. Load the Required Modules—Update the modules-load.conf.template file located at <Windchill_Home>\HTTPServer\conf\templates to include the following code:
<IfModule !rewrite_module>
LoadModule rewrite_module modules/mod_rewrite.so
</IfModule>
<IfModule !proxy_module>
LoadModule proxy_module modules/mod_proxy.so
</IfModule>
<IfModule !proxy_http_module>
LoadModule proxy_http_module modules/mod_proxy_http.so
</IfModule>
<IfModule !proxy_hcheck_module>
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
</IfModule>
<IfModule !proxy_balancer_module>
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
</IfModule>
<IfModule !slotmem_shm_module>
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
</IfModule>
<IfModule !watchdog_module>
LoadModule watchdog_module modules/mod_watchdog.so
</IfModule>
<IfModule !lbmethod_byrequests_module>
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
</IfModule>
Based on your authentication type, additional steps are required.
2. SAML SSO:
a. Ensure that the directive ShibUseHeaders On is present within the LocationMatch elements in /apache/conf/conf.d/30-app-Windchill-1Auth.conf for REMOTE_USER. Add it if it is missing.
b. Reconfigure Apache. Before proceeding, ensure that you take a backup of the Apache directory. Then run the following command to reconfigure Apache:
ant -f config.xml reconfigure
3. Basic Authentication:
a. Update the webAppAuthResToConf.xsl file located at <Windchill_Home>\HTTPServer\conf\templates\xsl to include the following code after the Require valid-user line:
<xsl:if test="$resource='WCPlugins'">
RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER}]
RequestHeader set REMOTE_USER %{PROXY_USER}e
</xsl:if>
b. Modify app-Windchill-AuthRes.xml—Update the app-Windchill-AuthRes.xml file located at <Windchill_Home>\HTTPServer\conf to include the following line immediately after the opening <resources> tag, before any existing <resource> entries:
<resource>WCPlugins</resource>
c. Reconfigure Apache. Before proceeding, ensure that you take a backup of the Apache directory. Then run the following commands to reconfigure Apache:
ant -f webAppConfig.xml regenAllWebApps
ant -f config.xml reconfigure
Set the Plugin Installation Directory
A dedicated property, wt.plugins.installed.dir, is provided out-of-the-box (OOTB) to define the directory where the plugin files are unzipped and installed. By default, this property is left blank, meaning that no installation path is predefined.
An administrator installing Windchill must manually create a secure directory outside the Windchill home directory, with read, write, and execute permissions, and then configure this property accordingly.
To add and propagate the wt.plugins.installed.dir property in the wt.properties file using xconfmanager, use the following command. For example:
xconfmanager -s wt.plugins.installed.dir=<your_custom_path> -t codebase/wt.properties && xconfmanager -pF
Ensure that access to the installation directory is granted only to administrator users. No other users should be given this permission.
|
|
If the plugin installation directory is not created as described, the plugin installation will not proceed.
|
Once you create a directory and define it using the property, you can install the plugin without requiring a restart of the Windchill server.
Log Files in the Plugin Installation Directory
The plugin installation directory contains a logs folder with the files generated by the plugin, for example /opt/ptc/plugins/logs. Administrators can refer to these detailed logs to troubleshoot issues or verify operations. These logs include timestamps, request details, and error messages.
Ensure that access to the log directory is granted only to administrator users. No other users should be given this permission.
A dedicated property, wt.plugins.logs.dir, is provided to specify the custom location for generating plugin logs.
• If the property is not set, plugin logs will be generated in the plugin installation directory, for example /opt/ptc/plugins/logs.
• If the property is set, plugin logs are generated in the directory specified by the property.
|
|
Windchill related logs are available in Apache and the MethodServer logs within the Windchill installation logging directories.
|
Set the Plugin Temporary Directory
A new property, wt.plugins.temp.dir, is introduced. This is an optional property that defines the directory for storing temporary plugin files. By default, the directory path is set to ${wt.temp}/<pluginId>. wt.temp is the existing wt property that defines the Windchill temporary location. It is important to ensure that write access to this directory is granted only to administrator users. No other users should be given this permission.
Use the following command to set this property:
xconfmanager -s wt.plugins.temp.dir=<your_custom_path> -t codebase/wt.properties && xconfmanager -pF
Preserve Java Certificates
The plugin is installed from a PTC‑hosted location on Azure. Ensure that the Java CA certificates are preserved; otherwise, TLS connections from your Windchill server to the internet will fail. Before installing the plugin, run the following command in a command‑line window with administrator rights:
"%JAVA_HOME%\bin\keytool.exe" -importkeystore -srckeystore "%JAVA_HOME%\lib\security\cacerts" -srcstorepass changeit -destkeystore
"%JAVA_HOME%\lib\security\jssecacerts" -deststoretype jks -deststorepass changeit
Configure a Shared Directory for the Plugin Installation in Windchill Clustered Environments
In a Windchill clustered environment, plugin installation requires a shared directory that is accessible from all nodes in the cluster. This shared location ensures consistent deployment and availability of plugins across the environment.
|
|
Plugin installation in clustered environments is supported only through a shared directory. Local directories are not supported. If the shared directory is not properly configured or is inaccessible to any node, the plugin installation process will fail.
|
Administrators must follow these guidelines to correctly configure and secure the shared directory:
• Create a network-shared folder to serve as the common plugin installation directory, accessible from all Windchill nodes.
• Specify a valid network path:
◦ \\shared\plugins (for Windows systems using UNC path format)
◦ /mnt/shared/plugins (for Linux systems using mounted network paths)
• Ensure all nodes have read and write access to the shared folder, and grant execute permissions to the Windchill installer user. In a Windows cluster setup, the plugin servers always operate in headless mode.
• Use the xconfmanager utility to set the wt.plugins.installed.dir property on each node, and ensure that it points consistently to the shared directory.
• Ensure the shared directory has enough free space to accommodate all plugins after installation. For example, if you plan to install 10 plugins and each plugin has a different size, calculate the total space required by adding the sizes of all plugins.
|
|
In a clustered setup, if one of the nodes is down during plugin installation, the plugin is installed only on the node that is currently running. When the node that was down comes back online, the plugin is automatically installed on that node, and the Apache configuration changes are updated accordingly.
For example, consider a setup with a Node 1 and another Node 2. If Node 2 is down or goes offline during the plugin installation, the plugin will not be installed on Node 2 at that time. After the server and Apache services are restarted and Node 2 comes back online, all required installation files are automatically updated on Node 2. No manual steps are required.
|