1

我正在尝试在我的 minishift 1.11.0 安装中通过 htpasswd 激活身份验证。我找不到用于设置 Openshift Origin 文档中描述的值的主配置文件。我已经通过 minishift ssh 在 minishift-VM 和 Windows 7 主机上的主文件夹中的 minishift 文件夹中进行了搜索。

如何为 minishift 1.11.0 激活 htpasswd?

编辑:我master-config.yaml在文件夹中找到了/var/lib/minishift/openshift.local.config/master/。我按照 Openshift 文档中的说明更改了 oauthConfig 下的内容: https ://docs.openshift.org/latest/install_config/configuring_authentication.html

.htpasswd 文件位于同一文件夹中,并在主配置中使用其绝对路径进行引用。

但是当我停止并再次启动 minishift 时,启动过程以以下错误结束:

-- Starting OpenShift container ... 
   Starting OpenShift using container 'origin'
FAIL
   Error: could not start OpenShift container "origin"
   Details:
     No log available from "origin" container

minishift : Error during 'cluster up' execution: Error starting the cluster.
In Zeile:1 Zeichen:1
+ minishift start --vm-driver=virtualbox
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error during 'c...ng the cluster.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

编辑 2:我怀疑 Openshift 直接使用工具 htpasswd 来验证用户的密码。我无法在 minishift 使用的 boot2docker VM 中安装 htpasswd,因此容器的初始化失败。(默认情况下也没有安装 yum)。

是否可以在 boot2docker 中安装 htpasswd?如果是,我在哪里可以得到包裹?

4

1 回答 1

1

我想我找到了问题所在。在尝试时,我在启动时使用相应的标志更改为 minishift 的 centos 映像:

minishift start --iso-url=centos

当我想将配置修补到主服务器时,minishift openshift config set它失败并回滚。在日志中搜索(使用minishift logs)得到了这一行:

error: Invalid MasterConfig /var/lib/origin/openshift.local.config/master/master-config.yaml
oauthConfig.identityProvider[0].provider.file: Invalid value: "/var/lib/minishift/openshift.local.config/master/.htpasswd": could not read file: stat /var/lib/minishift/openshift.local.co
nfig/master/.htpasswd: no such file or directory

Openshift 找不到 HTPasswd 文件,因为对于 Openshift,该master-config.yaml文件位于

/var/lib/origin/openshift.local.config/master

而不是在

/var/lib/minishift/openshift.local.config/master

正如我在配置文件中所写的那样。后一个是 minishift-VM 本身所见的文件路径(如使用 时所见minishift ssh),但在其中运行的 Openshift 实例只看到第一个。我只需要将主配置文件更新到正确的文件路径。

我还没有检查,如果这也解决了 boot2docker-iso 的问题,但我认为这一定是问题所在。而且 HTPasswd 真的不需要安装在虚拟机中就可以让它工作。您只需要包含可访问 VM 的用户和密码的文件。

PS.:我也有一个奇怪的侧面行为。当我更改为 HTPasswd 时,已经定义了一个用户。我还在密码文件中定义了他,但是当尝试通过 web 控制台使用此用户名登录时,我收到错误,无法创建用户。所有其他用户名都可以正常工作。也许在将他添加到 HTPasswd 之前,我必须在某个内部用户目录中删除他。

于 2018-01-30T15:50:59.600 回答