如何在minishift的主配置中为oauth设置htpasswd(v1.11.0)(Openshift Origin)

时间:2018-01-22 10:29:34

标签: openshift openshift-origin .htpasswd minishift

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

如何为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来验证用户的密码。我无法在boot2docker VM中安装htpasswd,minishift使用,因此容器的初始化失败。 (默认情况下也不安装yum。)

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

1 个答案:

答案 0 :(得分:0)

我想我发现了这个问题。尝试在启动时使用相应的标志更改为minosift的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中以使其工作。您只需要具有用户的文件和VM可访问的密码。

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