如何在Redhat-SSO映像中为OpenShift启用相互SSL验证模式

时间:2019-01-28 13:24:22

标签: openshift redhat-sso

我使用的模板sso72-x509-postgresql-persistent(基于Redhat-SSO和Keycloak)在OpenShift中创建应用程序。

我将启用其双向SSL模式,以便用户仅在请求中提供其证书,而不是用户名和密码。文档(https://access.redhat.com/documentation/en-us/red_hat_single_sign-on/7.2/html-single/server_administration_guide/index#x509)告诉我编辑standalone.xml文件以添加配置部分。工作正常。

但是模板映像sso72-x509-postgresql-persistent在此过程中遇到了问题,因为在将其部署到OpenShift上后,重新启动docker后,丢失了docker中文件的所有更改。

除了通过创建自己的docker映像外,是否还有其他方式通过命令行或API来启用双向SSL模式,而不是编辑配置文件?

1 个答案:

答案 0 :(得分:0)

好吧,无论如何我都包括在内。由于权限问题,我无法正常工作(挂载的文件未保留以前的权限,因此容器继续失败。但是,此答案做了很多工作,因此希望可以为您指明方向正确的方向!


您可以添加一个持久卷(PV),以确保您的配置更改在重启后仍然有效。您可以通过以下方式将PV添加到您的部署中:

不要这样做

oc set volume deploymentconfig sso --add -t pvc --name=sso-config --mount-path=/opt/eap/standalone/configuration --claim-mode=ReadWriteOnce --claim-size=1Gi

这将显示带有空白configuration目录的RH-SSO图像,从而导致吊舱卡在Back-off restarting failed container中。相反,您应该做的是:

  1. 备份现有配置文件

    oc rsync <rhsso_pod_name>:/opt/eap/standalone/configuration ~/
    
  2. 创建一个临时busybox部署,该部署可以用作上载配置文件的中介。 等待部署完成

    oc run busybox --image=busybox --wait --command -- /bin/sh -c "while true; do sleep 10; done"
    
  3. 将新的PV挂载到busybox部署中。 等待部署完成

    oc set volume deploymentconfig busybox --add -t pvc --name=sso-volume --claim-name=sso-config --mount-path=/configuration --claim-mode=ReadWriteOnce --claim-size=1Gi
    
  4. 立即编辑您的配置文件

  5. 通过busybox窗格将配置文件上传到新的PV

    oc rsync ~/configuration/ <busybox_pod_name>:/configuration/
    
  6. 销毁busybox部署

    oc delete all -l run=busybox --force --grace-period=0
    
  7. 最后,您将已经创建并准备使用的持久性配置附加到RH SSO部署中

    oc set volume deploymentconfig sso --add -t pvc --name=sso-volume --claim-name=sso-config --mount-path=/opt/eap/standalone/configuration
    

一旦您的新部署...由于权限问题仍然失败:/