本节提供有关升级 Identity Applications 和支持软件的信息,其中包括更新以下组件的内容:
Identity Manager User Application
One SSO Provider (OSP)
Self-Service Password Reset (SSPR)
Tomcat、JDK 和 ActiveMQ
PostgreSQL 数据库
升级后,组件将升级到以下版本:
Tomcat – 8.5.27
ActiveMQ – 5.15.2
Java – 1.8.0_162
One SSO Provider – 6.2.1
Self-Service Password Reset – 4.2.0.4
本节提供有关以下主题的信息:
升级进程会从现有组件中读取配置值。这些信息包括 ism-configuration.properties、server.xml、SSPRConfiguration 和其他配置文件。升级进程会使用这些配置文件在内部调用各组件的升级程序。此外,此程序还会创建当前安装的备份。
在执行升级之前,请先查看以下注意事项:
Identity Manager 已升级到版本 4.5.6: 您不能从低于 4.5.6 的版本升级或迁移到版本 4.7。有关如何升级到 Identity Manager 4.7 的详细信息,请参见部分 25.3, 支持的升级路径。
系统要求: 升级过程至少需要 3 GB 可用磁盘空间,用于存储当前配置以及升级过程中创建的临时文件。确保服务器具有足够储存备份的空间,另外还有可供升级的可用空间。
如果您已将 Identity Applications 安装在非根分区的其他分区中,请确保该分区具有足够的空间用来储存备份配置。另外,请确保 /tmp 目录具有足够的空间用来储存日志和临时文件。如果此目录不能提供所需的空间,请将 IATEMPDIR 环境变量设置为分区上具有足够可用空间的某个目录。这会重新指示升级程序将文件储存到该目录。
要将 IATEMPDIR 设置为某个目录,请执行以下操作:
打开一个终端,并输入以下命令:
export IATEMPDIR=/opt/custom_tmp
其中,/opt/custom_tmp 是具有足够可用磁盘空间的目录的路径。
注:备份 Identity Applications 证书 (cacerts)。
从命令行启动升级程序。
使用 Tomcat 作为应用程序服务器: 此版本的 Identity Manager 仅支持使用 Tomcat 作为应用程序服务器。
如果用于运行 Identity Applications 的应用程序服务器不是 Tomcat,请在执行升级前将该应用程序服务器迁移到 Tomcat。有关详细信息,请参见“从 Websphere 或 JBoss 迁移到 Tomcat”。
数据库平台已升级: 此程序不会升级 Identity Applications 的数据库平台。请手动将当前的数据库版本升级到支持的版本。要升级 PostgreSQL 数据库,请参见部分 26.5.4, 升级 PostgreSQL 数据库。
Role and Resource Service 驱动程序包已升级: 有关详细信息,请参见《NetIQ Designer for Identity Manager Administration Guide》(NetIQ Designer for Identity Manager 管理指南)中的“Upgrading Installed Packages”(升级安装的包)。
Self Service Password Reset: 如果要从 SSPR 4.0 升级,请确保您已更新 CATALINA_OPTS 属性,并且 -Dsspr.application.Path 设置为储存 SSPR 配置的文件夹。
例如:
export CATALINA_OPTS="-Dsspr.applicationPath=/home/sspr_data
在升级前备份 SSPR LocalDB。要导出或下载 LocalDB,请执行以下步骤:
以管理员身份登录 SSPR 门户。
在页面右上角的下拉菜单中单击配置管理器。
单击 LocalDB。
单击下载 LocalDB。
升级进程会为所安装组件的当前配置创建备份。确保服务器具有足够储存备份的空间,另外还有可供升级的可用空间。
需要执行以下升级前步骤以升级 PostgreSQL 数据库。
停止 PostgreSQL 服务。
su -s /bin/sh - postgres -c "/opt/netiq/idm/apps/postgres/bin/pg_ctl stop -w -D /opt/netiq/idm/apps/postgres/data"
禁用 PostgreSQL 服务的现有单元文件。
systemctl disable postgresql-9.6.service
清理 PostgreSQL 服务的现有单元文件。
rm /usr/lib/systemd/system/postgresql-9.6.service
systemctl daemon-reload
systemctl reset-failed
创建备份目录并备份现有的 PostgreSQL 目录。
例如:
mkdir -p /home/backup
cp -rvf /opt/netiq/idm/apps/postgres/ /home/backup/
导航到装入 Identity_Manager_4.7_Linux.iso 的位置。
导航到 /common/packages/postgres/ 目录。
安装新版 PostgreSQL。
rpm -ivh netiq-postgresql-9.6.6-0.noarch.rpm
注:PostgreSQL 主目录会从先前安装的自定义位置更改为 /opt/netiq/idm/postgres/。
在 PostgreSQL 安装位置中创建 data 目录。
mkdir -p <POSTGRES_HOME>/data,其中,<POSTGRES_HOME> 是 /opt/netiq/idm/postgres
例如:
mkdir -p /opt/netiq/idm/postgres/data
更改新安装的 PostgreSQL 目录的许可权限。
chown -R postgres:postgres <postgres directory path>
例如:
chown -R postgres:postgres /opt/netiq/idm/postgres
创建 postgres 用户主目录。
例如,mkdir -p /home/users/postgres
更改新创建的 PostgreSQL 用户主目录的许可权限。
chown -R postgres:postgres <postgres home directory path>
例如:
chown -R postgres:postgres /home/users/postgres
导出 PostgreSQL home 目录
export PGHOME=<postgres home directory path>
例如:
export PG_HOME=/opt/netiq/idm/postgres
导出 PostgreSQL 口令:
export PGPASSWORD=<输入数据库口令>
初始化数据库。
su -s /bin/sh - postgres -c "LANG=en_US.UTF-8 <POSTGRES_HOME>/bin/initdb -D <POSTGRES_HOME>/data"
例如:
su -s /bin/sh - postgres -c "LANG=en_US.UTF-8 /opt/netiq/idm/postgres/bin/initdb -D /opt/netiq/idm/postgres/data"
在 /etc/passwd 文件中,将 postgres 用户的主目录路径更改为 /opt/netiq/idm/postgres/。
导航到 /etc/ 目录。
编辑 passwd 文件。
vi /etc/passwd
将 postgres 用户的主目录更改为 /opt/netiq/idm/postgres/。
导航到 /opt/netiq/idm/postgres/ 目录。
以 postgres 用户身份登录。
例如:
su postgres
迁移现有数据。
例如:
/opt/netiq/idm/postgres/bin/pg_upgrade --old-datadir /opt/netiq/idm/apps/postgres/data/ --new-datadir /opt/netiq/idm/postgres/data/ --old-bindir /opt/netiq/idm/apps/postgres/bin --new-bindir /opt/netiq/idm/postgres/bin/
以 postgres 用户身份注销。
更新 pg_hba.conf 文件以信任服务器网络:
导航到 /opt/netiq/idm/postgres/data/ 目录。
编辑 pg_hba.conf 文件:
vi pg_hba.conf
在 pg_hba.conf 文件中添加下面一行:
host all all 0.0.0.0/0 trust
为了确保 PostgreSQL 实例会侦听 localhost 以外的其他网络实例,请更新配置文件:
导航到 /opt/netiq/idm/postgres/data/ 目录。
编辑 postgresql.conf 文件:
vi postgresql.conf
在 postgresql.conf 文件中添加下面一行:
listen_addresses = '*'
注:要侦听受限的网络接口,请指定 IP 地址的逗号分隔列表。
在 <postgres home directory path>/data 下创建 pg_log 目录。
例如:
mkdir -p /opt/netiq/idm/postgres/data/pg_log
更改 pg_log 目录的许可权限。
chown -R postgres:postgres <postgres directory path>/data/pg_log
例如:
chown -R postgres:postgres /opt/netiq/idm/postgres/data/pg_log
启动 PostgreSQL 服务。
systemctl start netiq-postgresql
此命令将启动新的 PostgreSQL 服务。
(可选)通过 GUI 起动新的 pgAdmin:
将 scripts 目录从旧的 postgres 主目录复制到新的 postgres 主目录。
例如:
cp -rvf /opt/netiq/idm/apps/postgres/scripts /opt/netiq/idm/postgres
导航到 /opt/netiq/idm/postgres/scripts 目录。
编辑 launchpgadmin.sh,使用新的 PostgreSQL 路径替换旧路径。
使用 /opt/netiq/idm/postgres 替换 /opt/netiq/idm/apps/postgres/。
导航到 /usr/share/application 目录,然后编辑 .desktop 应用程序以提供 launchpgadmin.sh 的新路径。
SLES: 编辑 pg-pgadmin-9_6.desktop 应用程序,使用新的 launchpgadmin.sh 路径替换 EXEC 值
例如:
将 "Exec=/opt/netiq/idm/apps/postgres/scripts/launchpgadmin.sh" 的值更改为 :"Exec=/opt/netiq/idm/postgres/scripts/launchpgadmin.sh"
RHEL: 导航到 /usr/share/application,然后创建含有以下细节的 pg-pgadmin-9_6.desktop 文件:
例如:
[Desktop Entry] Version=1.0 Encoding=UTF-8 Name=pgAdmin 4 Exec=/opt/netiq/idm/postgres/scripts/launchpgadmin.sh Icon=pg-pgadmin-9_6.png Terminal=false Type=Application
从系统中去除旧的 postgres 主目录。
rm -rf /opt/netiq/idm/apps/postgres/
为使更改生效,请重启动您的系统。
本节介绍如何将 User Application 驱动程序以及角色和资源服务驱动程序的包更新到最新版本。升级 Identity Applications 前必须先执行此任务。
在 Designer 中打开当前项目。
右键单击包编目 > 导入包。
选择相应的包。例如,User Application 驱动程序基础包。
单击确定。
在开发人员视图中,右键单击该驱动程序,然后单击属性。
浏览到属性页面中的包选项卡。
单击右上角的添加包 (+) 符号。
选择该包,然后单击确定。
重复相同过程升级角色和资源服务驱动程序的包。
注:确保 User Application 驱动程序以及角色和资源服务驱动程序连接到升级后的 Identity Manager。
注:如果 Identity Applications 和 SSPR 安装在不同的服务器上,您需要手动升级 SSPR。有关详细信息,请参见升级 SSPR。
下面的过程介绍如何升级 Identity Applications。
从 NetIQ 下载网站下载 Identity_Manager_4.7_Linux.iso。
装入下载的 .iso。
运行以下命令:
./install.sh
通读许可协议。
输入 y 以接受许可协议。
指定是否要升级 Identity Manager 组件。可用选项有 y 和 n。
选择 Identity Applications 以继续升级。
指定以下细节:
SSPR 安装文件夹: 指定 SSPR 安装文件夹。
User Application 文件夹: 指定 User Application 文件夹。
Identity Applications One SSO 服务口令: 指定 One SSO 口令。
Identity Applications 数据库 JDBC jar 文件: 指定数据库 JAR 文件。现有数据库 jar 文件的默认位置是 /opt/netiq/idm/apps/postgres/postgresql-9.4.1212.jar。
创建 Identity Applications 的纲要: 指定要在何时创建数据库纲要。可用选项有现在、启动和文件。
注:如果 SSPR 安装在不同于安装 Identity Applications 和 OSP 的服务器上,则必须单独升级 SSPR。
如部分 5.11, 下载安装文件中所述下载 Identity_Manager_4.7_Linux.iso。
装入下载的 .iso。
从 .iso 文件的根目录中,导航到 SSPR 目录。
运行以下命令:
./install.sh
通读许可协议。
输入 y 以接受许可协议。
校验 configupdate 实用程序中的 RBPM 至 eDirectory SAML 配置参数是否设置为自动。
起动 configupdate 实用程序。
导航到 SSO 客户端 > RBPM,并将 RBPM 至 eDirectory SAML 配置设置为自动。
保存更改。
启动 Tomcat。
更改 OSP 目录的许可权限和所有权:
chmod +x novlua:novlua /opt/netiq/idm/apps/osp
手动删除先前版本的 Tomcat 和 ActiveMQ 服务。
/etc/init.d/idmapps_tomcat_init
/etc/init.d/idmapps_activemq_init
您还必须手动恢复 Tomcat、SSPR、OSP 或 Identity Applications 的自定义设置。
校验升级后的 JRE 位置 (jre/lib/security/cacerts) 是否包含较旧 JRE 位置中的所有证书。如果某个证书缺失,请手动将该证书导入到升级后的 JRE 的 cacerts 中。
使用 keytool 命令导入 java cacerts:
keytool -import -trustcacerts -file Cerificate_Path -alias ALIAS_NAME -keystore cacerts
注:升级后,JRE 储存在 Identity Applications 安装位置。例如:/opt/netiq/idm/apps/jre。
校验 JRE 主目录位置。
tomcat/bin/setenv.sh
起动配置更新实用程序,并校验您的 cacerts 路径。
(视情况而定)要从升级过程先前创建的备份恢复自定义文件,请执行以下任务:
恢复自定义的 https 证书。要恢复这些证书,请将备份的 server.xml 中的 Java Secure Socket Extension (JSSE) 内容复制到 /tomcat/conf 目录下的新 server.xml 文件中。
不要将备份的 Tomcat 目录中的配置文件复制到新 Tomcat 目录中。应根据需要在新版本默认配置的基础上进行更改。有关详细信息,请参见此 Apache 网站。
校验新的 server.xml 文件是否包含以下项:
<Connector port="8543" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="path_to_keystore_file"
keystorePass="keystore_password" />
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
或者
<Connector port="8543" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="path_to_keystore_file"
keystorePass="keystore_password" />
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
注:在群集环境中,手动取消注释 server.xml 中的 Cluster 标记,然后将第一个节点上的 osp.jks(位于 /opt/netiq/idm/apps/osp_backup_<date> 中)复制到所有节点上。
如果您自定义了密钥存储区文件,请在新 server.xml 文件中包括正确的路径。
将 Identity Applications 证书导入到身份库(位于 /opt/novell/eDirectory/lib64/nds-modules/jre/lib/security/cacerts 中)。
例如,您可以使用以下 keytool 命令将证书导入到身份库中:
keytool -importkeystore -alias <keyalias> -srckeystore <backup cacert> -srcstorepass changeit -destkeystore /opt/novell/eDirectory/lib64/nds-modules/jre/lib/security/cacerts -deststorepass changeit
(视情况而定)导航到 User Application,然后通过读取备份的配置手动恢复自定义设置。
从升级过程中创建的备份恢复 Identity Applications 自定义配置。
如果您在运行升级程序前已将自定义环境文件夹重命名为 IDMProv,则应使用 configupdate 实用程序将该环境文件夹名称更改为原来的环境名称。例如,原来的自定义环境名称为 IDMDev,现在它被重命名为 IDMProv。
请完成以下步骤将环境名称改回为原来的环境名称:
导航到 User Application 目录(位于 /opt/netiq/idm/apps/UserApplication 中)。
(可选)要以 GUI 模式起动 configupdate 实用程序,请确保 configupdate.sh.properties 文件中的 use_console 选项设置为 false。
之所以需要执行此步骤,是因为升级实用程序会将此选项的值更改为 true。
或者,在 Linux 上起动 configupdate 实用程序,并传递额外的命令行自变量。
./configupdate.sh use_console=false
起动 configupdate 实用程序。
configupdate.sh
在 User Application 选项卡中单击高级选项,然后执行以下步骤:
选中更改 RBPM 环境名称复选框。
将 RBPM 环境名称更改为原来的环境名称。
浏览并选择相应的角色驱动程序 DN,然后单击确定。
使用以下命令更改 WAR 文件的许可权限和所有权。
chmod 755 <Original_Context_Name>.war; chown -R novlua:novlua <Original_Context_Name>.war
例如,如果原来的自定义环境名称为 IDMDev:
chmod 755 IDMDev.war; chown -R novlua:novlua IDMDev.war
(视情况而定)如果您已完成所有升级后任务,则请启动 Identity Applications 的 Tomcat 服务。
如果 OSP 和 User Application 部署在不同的服务器上,请使用配置更新实用程序更新 SSO 客户端参数。有关更多信息,请参见部分 11.6.5, SSO 客户端参数中的IDM 仪表板。
位于 /etc/logevent.conf 文件中的 LogHost 条目默认设置为 localhost。
要修改 LogHost 条目,请手动从升级过程中创建的备份恢复 OSP 自定义配置。
升级实用程序会在计算机上创建新的 Tomcat 文件夹。如果任何 Kerberos 文件(例如 keytab 和 Kerberos_login.config)驻留在旧的 Tomcat 文件夹中,请从备份文件夹中将这些文件复制到新的 Tomcat 文件夹。