iDME私有化部署首次部署流程
1. 创建应用
查看华为官方文档 (opens new window)根据提示创建应用
进入应用中心查看应用ID

2. 下载SDK包
进入应用发布页面
在指定版本下生成及下载XDM-F SDK包

解压下载的SDK包
tar -xvf {SDK包所在路径} -C {解压的路径}3. 编辑配置文件
需保证有RDS库(MySQL数据库)及Redis库
阅读华为官方文档
可参考该配置进行调整
# 数据库配置 RDS_IP=192.168.168.207 # 数据库地址,需修改 RDS_PORT=31446 # 数据库端口,需修改 RDS_NAME=root # 数据库用户名,需修改 RDS_PASSWORD=test # 数据库密码,需修改 RDS_TYPE=mysql RDS_DATABASE=xdm-test # 数据库名,需修改 # Redis配置 REDIS_HOST=192.168.168.54 # Redis地址,需修改 REDIS_PASSWORD=123456 # Redis密码,需修改 REDIS_PORT=6379 # Redis端口,需修改 REDIS_TYPE=SINGLE # 公共信息配置 TENANT_ID=e3231ab62e9d4771bd0df793f62d2282 # 应用ID,需修改 APP_NAME=SieProMom # 应用名称,需修改 APP_IDENTIFIER=e3231ab62e9d4771bd0df793f62d2282 # 应用ID,需修改 PAAS_APP_NAME=siepromom # 应用名称的小写,需修改 server.ssl.enabled=false olc.config.path=/opt/deploytest/olc xdm.delegate.bean.inject=false server.servlet.context-path=/rdm_e3231ab62e9d4771bd0df793f62d2282_app/services/ # 格式:/rdm_{应用ID}_app/services/,需修改 java.compile.lib.path=/opt/xdm/lib # MongoDB配置 mongodb.init=false # Kafka配置 kafka.init=false # IAM配置 XDM_LOGIN_TYPE=LOCAL ssf.sysmgr.sessionfilter.loginUrl=LOCAL ssf.sysmgr.sessionfilter.ignorePattern=/getIndexUrl;/v1/health;/v1/login/login;/v1/login/logout;/v1/login/verifycode;/v1/firstlogin/users;/v1/firstlogin/userpasswords:PUT;/static/**;/index.html;/HuaweiLog.ico;/HuaweiLog.png ssf.login.logoutUri=https://192.168.168.54:8003//authui/logout # 登出地址,格式为:https://{站点地址}/authui/logout,需修改 OPEN_IAM_TOKEN_VALIDATION=false RUNTIME_ENV_TYPE=IES XDM_SDK_DEPLOY_ENABLE=true # 禁用二级缓存 OPEN_SECOND_LEVEL_CACHE=false # 日志过滤 DEVSPORE_LOG_DESENSITIZATION_CONFIG=OFF xdm.log.filter=false # 关闭验证码 ssf.login.local.verifycode.verify-code=false # 许可路径 xdm.license.licenseFile=/opt/xdm/license.dat # 许可文件路径,如无此配置则为试用状态,根据情况修改 # 高代码相关 CUSTOM_SERVICE_GLOBAL_SWITCH=true CUSTOM_SERVICE_MANAGEABLE=true CUSTOM_SERVICE_MODIFIABLE=true CUSTOM_SERVICE_EXECUTABLE=true CUSTOM_CODE_WHITELIST= # tenant.info配置 tenant.info=
4. 生成镜像
根据启动脚本创建startxdm.bash文件,放到与配置文件同一个文件夹
cd /opt/xdm/ # 指定启动类 START_CLASS=com.huawei.microservice.rdm.RdmApplication # 指定启动类所在路径,为lib目录下 LOAD_CLASSPATH=./lib/*:./ BIND_ADDRESS=`hostname -i` # 从部署包中解压出olc配置文件 jar xvf ./lib/microserviceTemplate.app-1.0.0-SNAPSHOT-shaded-small.jar olc # 执行java命令,以配置文件application.properties启动服务,并把日志输入到当前目录下的xdm.log中 sh -c "java -Xms8g -Xmx8g -Dconfig.file=/opt/xdm/application.properties -classpath $LOAD_CLASSPATH $START_CLASS --server.address=${BIND_ADDRESS} -Diit.test=true"创建Dockerfile文件,放到与配置文件同一个文件夹
# 使用官方的 openeuler 作为基础镜像 FROM openeuler/bisheng-jdk:1.8.0-oe2203lts # 验证 JDK 安装 RUN java -version # 设置工作目录 WORKDIR /opt/xdm # 将应用所需的 JAR 文件和脚本复制到容器中 COPY lib /opt/xdm/lib COPY startxdm.bash /opt/xdm/startxdm.bash COPY application.properties /opt/xdm/application.properties COPY license.dat /opt/xdm/license.dat # 确保脚本有执行权限 RUN chmod +x /opt/xdm/startxdm.bash # 暴露应用运行时需要的端口 (如果你知道具体端口,可以在此处设置) EXPOSE 8003 # 设置容器启动时执行的命令 CMD ["/bin/sh", "/opt/xdm/startxdm.bash"]进入Dockerfile文件所属文件夹,文件夹下结构如下图

执行命令,生成镜像,镜像名及版本号可以自定义
docker build --no-cache -t xdm:1 .
5. 运行镜像
将镜像上传到客户方私有镜像仓库或公有云仓库
如果网络不通可以通过本地文件发送
本地打包镜像文件可参考下面命令
docker save xdm:1 -o D:\xdm1.tar docker load -i /tmp/xdm1.tar启动容器
可参考以下K8s yaml文件
kind: Deployment apiVersion: apps/v1 metadata: name: xdm-runtime namespace: pre-product spec: replicas: 1 selector: matchLabels: app: xdm-runtime template: metadata: labels: app: xdm-runtime spec: containers: - name: xdm-runtime image: 'xdm:1' resources: limits: cpu: '4' memory: 8000Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always securityContext: privileged: true restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: {} schedulerName: default-scheduler strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 25% maxSurge: 25% revisionHistoryLimit: 10 progressDeadlineSeconds: 600
6. 验证系统
进入系统,系统地址为
http://{部署服务器的IP地址}:{部署服务器的端口号}/rdm_{应用的唯一标识}_app/services/index.html首次进入需设置管理员密码
设置完进入系统,能正常访问说明部署成功
获取License流程
修改License相关配置
xdm.license.deployType=CONTAINER #表示部署模式为容器 xdm.license.runtime.valid-type=TRIAL #表示试用模式确保iDME正常启动
通过PostMan或者其他调用工具调用接口
http://{服务的IP地址}:{服务的端口号}/rdm_{应用的唯一标识}_app/services/v1/license/collect-esn调用接口,http头添加x-auth-token值为1,获取到的一个唯一编码
把获取到的唯一编码发送邮件到华为iDME负责人
chenyutao6@huawei.com邮箱上,邮件内容可参考
等待License申请下来后把License文件通过K8s密钥映射到工作负载中,路径为
xdm.license.licenseFile配置指定的路径。修改
xdm.license.runtime.valid-type为LICENSE,重启工作负载。确认应用有效期生效。
iDME私有化部署升级流程说明
1. 下载新版本SDK包
下载新版本SDK包,解压后,将解压后的文件放入Dockerfile所在目录,解压前最好把原目录下的lib文件夹删除,避免有文件遗留,参考命令
rm -rf {Dockerfile所在目录}/lib
tar -xvf {SDK包所在路径} -C {Dockerfile所在目录}2. 打包升级镜像
进入Dockerfile所在目录,打包新版本镜像,记得镜像版本需比原版本号大
docker build --no-cache -t xdm:2 .3. 更新镜像
在K8s管理工具中修改pod镜像版本,重启pod
