7.4. 使用 Ansible 进行配置更改
对于本节,假设您熟悉 Ansible。
只有一部分可用的主机配置选项会 公开给 Ansible。安装 OpenShift Container Platform 后,Ansible 会使用一些替换的值创建一个清单文件。修改此清单文件并重新运行 Ansible 安装程序 playbook 是为了自定义 OpenShift Container Platform 集群。
虽然 OpenShift Container Platform 支持使用 Ansible playbook 和清单文件进行集群安装,但您也可以使用其他管理工具,如 Puppet、Chef 或 Salt。
使用案例:将集群配置为使用 HTPasswd 身份验证
- 此用例假定您已为 playbook 中引用的所有节点设置了 SSH 密钥。
htpasswd
工具程序位于httpd-tools
软件包中:yum install httpd-tools
# yum install httpd-tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
修改 Ansible 清单并进行配置更改:
- 打开 ./hosts 清单文件。
在文件的
[OSEv3:vars]
部分添加以下新变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 HTPasswd 身份验证,
openshift_master_identity_providers
变量启用身份验证类型。您可以使用 HTPasswd 配置三个不同的身份验证选项:-
如果主机上已配置了
/etc/origin/master/htpasswd,则仅指定
。openshift_master
_identity_providers -
指定
openshift_master_identity_providers
和openshift_master_htpasswd_file
将本地 htpasswd 文件复制到主机。 -
指定
openshift_master_identity_providers
和openshift_master_htpasswd_users
,以在主机上生成新的 htpasswd 文件。
由于 OpenShift Container Platform 需要哈希密码来配置 HTPasswd 身份验证,因此您可以使用
htpasswd
命令(如以下小结所述)为用户生成哈希密码,或使用用户和相关哈希密码创建平面文件。以下示例将身份验证方法从默认
拒绝所有
设置到htpasswd
,并使用指定的文件为jsmith
和blob 用户可以生成用户 ID 和密码
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果主机上已配置了
重新运行 ansible playbook 以使这些修改生效:
ansible-playbook -b -i ./hosts ~/src/openshift-ansible/playbooks/deploy_cluster.yml
$ ansible-playbook -b -i ./hosts ~/src/openshift-ansible/playbooks/deploy_cluster.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow playbook 更新配置,并重启 OpenShift Container Platform master 服务以应用更改。
您现在已使用 Ansible 修改了 master 和节点配置文件,但这只是一个简单的用例。从此处您可以看到哪些 master 和 节点配置选项 公开给 Ansible,并自定义您自己的 Ansible 清单。
7.4.1. 使用 htpasswd 命令 复制链接链接已复制到粘贴板!
要将 OpenShift Container Platform 集群配置为使用 HTPasswd 身份验证,您至少需要一个带有哈希密码的用户才能包含在 清单文件中。
您可以:
创建用户和散列密码:
运行以下命令来添加指定用户:
htpasswd -n <user_name>
$ htpasswd -n <user_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以包含
-b
选项,用于在命令行中提供密码:htpasswd -nb <user_name> <password>
$ htpasswd -nb <user_name> <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入并确认用户的明文密码。
例如:
htpasswd -n myuser
$ htpasswd -n myuser New password: Re-type new password: myuser:$apr1$vdW.cI3j$WSKIOzUPs6Q
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令将生成散列版本的密码。
然后您可以在配置 HTPasswd 身份验证时使用哈希密码。hashed 密码是字符串,位于 :
后面。在上例中,请输入:
openshift_master_htpasswd_users={'myuser': '$apr1$wIwXkFLI$bAygtISk2eKGmqaJftB'}
openshift_master_htpasswd_users={'myuser': '$apr1$wIwXkFLI$bAygtISk2eKGmqaJftB'}
创建带有用户名和散列密码的平面文件:
执行以下命令:
htpasswd -c /etc/origin/master/htpasswd <user_name>
$ htpasswd -c /etc/origin/master/htpasswd <user_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以包含
-b
选项,用于在命令行中提供密码:htpasswd -c -b <user_name> <password>
$ htpasswd -c -b <user_name> <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入并确认用户的明文密码。
例如:
htpasswd -c /etc/origin/master/htpasswd user1 New password: Re-type new password: Adding password for user user1
htpasswd -c /etc/origin/master/htpasswd user1 New password: Re-type new password: Adding password for user user1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令会生成一个文件,其中包含用户名以及用户密码的散列版本。
然后,您可以在配置 HTPasswd 身份验证时使用密码文件。
如需有关 htpasswd
命令的更多信息,请参阅 HTPasswd 身份提供程序。