我使用的模板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模式,而不是编辑配置文件?
答案 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
中。相反,您应该做的是:
备份现有配置文件
oc rsync <rhsso_pod_name>:/opt/eap/standalone/configuration ~/
创建一个临时busybox
部署,该部署可以用作上载配置文件的中介。 等待部署完成
oc run busybox --image=busybox --wait --command -- /bin/sh -c "while true; do sleep 10; done"
将新的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
立即编辑您的配置文件
通过busybox
窗格将配置文件上传到新的PV
oc rsync ~/configuration/ <busybox_pod_name>:/configuration/
销毁busybox
部署
oc delete all -l run=busybox --force --grace-period=0
最后,您将已经创建并准备使用的持久性配置附加到RH SSO部署中
oc set volume deploymentconfig sso --add -t pvc --name=sso-volume --claim-name=sso-config --mount-path=/opt/eap/standalone/configuration
一旦您的新部署...由于权限问题仍然失败:/