如何在CentOS6.5上安装和配置OpenShiftOrigin

来自菜鸟教程
跳转至:导航、​搜索

状态:已弃用

本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) ,不再接收安全补丁或更新。 因此,不再维护本指南。

请参阅:本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。


介绍

OpenShift 是红帽的平台即服务 (PaaS),它允许开发人员在云环境中快速开发、托管和扩展应用程序。 OpenShift Origin 是 OpenShift 的开源上游。 它内置支持多种语言、运行时和数据层,包括 Java EE6RubyPHP、Python[X147X ]、PerlMongoDBMySQLPostgreSQL。 您可以使用自定义或社区插件向 OpenShift 添加新的运行时和框架。

轻松扩展您的 Web 应用程序是在 OpenShift Origin 上运行它们的主要原因。

注意:在本教程中,用户输入将以 red 突出显示。

OpenShift 的工作原理

OpenShift 角色

OpenShift 平台上使用了四个角色。 虽然了解角色对本教程的作用并不重要,但如果您希望部署服务器集群以提供高可用性、负载平衡等,则需要了解这些角色提供的功能。

在我们的教程中,我们将配置一个服务器来运行所有这些角色。

经纪人

Broker 角色由 OpenShift Broker RPM 和 MCollective 客户端组成。 Broker 充当 OpenShift 部署的中心枢纽,并提供一个 Web 界面,用户可以在其中管理其托管的应用程序。

数据库服务器

此角色由 Broker 用于跟踪用户和应用程序的 MongoDB 数据库组成。

消息服务器

MsgServer 角色包括 ActiveMQ 服务器和 MCollective 客户端。

节点

Node 角色分配给实际用于存储和服务 OpenShift 托管应用程序的任何主机。 oo-install 支持将节点部署为初始安装的一部分,以及将新节点添加到现有 OpenShift 部署的工作流程的一部分。

OpenShift 架构

OpenShift 旨在成为一个高可用性、可扩展的应用程序平台。 如果配置正确,大型 OpenShift 部署可以在需求增加时提供一种简单的方法来扩展您的应用程序,同时提供零停机时间。 借助位于多个数据中心位置的 OpenShift 主机集群,您可以在整个数据中心出现故障时幸免于难。 在本教程中,我们将设置我们的第一个 OpenShift 主机,运行 OpenShift 所需的所有角色。

从客户的角度来看它是如何工作的

  • 客户想要访问站点 app-owner.apps.example.com
  • 客户端的浏览器请求域的 DNS 记录。
  • DNS 服务器以托管应用程序的节点的 IP 地址进行响应。
  • 客户端浏览器向节点发送 GET 请求。
  • 节点将请求映射到所需的应用程序。
  • 应用程序本身直接响应请求。

DNS 服务器如何知道哪个节点正在运行应用程序?

开发人员连接到代理以创建/管理应用程序。 当所有者修改应用程序时,Broker 将向 DNS 服务器发送一条带有新信息的消息。 此信息包括用于应用程序的域,以及托管应用程序的节点。 由于这种自动化,OpenShift 需要控制用于应用程序的域或子域的 DNS 区域。

OpenShift 使用绑定 DNS 服务器。 如果您有现有的 Bind DNS 服务器,则可以配置 OpenShift 以使用它。 但是,在本教程中,我们将介绍使用由 OpenShift Origin 安装程序自动配置的新 DNS 服务器的过程。

如果您希望使用现有的 BIND DNS 服务器,您可以阅读 OpenShift Origin 综合部署指南 中设置 DNS 的说明。

DNS 配置

在本教程的其余部分,我们将使用以下域。 用您自己的替换这些,并随意使用个性化的命名约定。

  • example-dns.com - 用于我们的域名服务器
  • 例子.com
    • apps.example.com - 用于 OpenShift 应用程序
    • openshift.example.com - 用于 OpenShift 主机
    • master.openshift.example.com - 我们的 Droplet 的主机名

先决条件

液滴要求

  • 1GB Droplet 或更大

OpenShift 的安装非常耗费资源,并且某些软件包的 RAM 使用量可能超过 512 MB。 您应该使用 1 GB 或更大的 Droplet。 如果您在安装程序结束时注册墨盒时遇到任何问题,可能是由于内存不足导致某些软件包安装失败。 这可以通过检查安装日志来确认。

检查安装日志:

cat /tmp/openshift-deploy.log

支持的操作系统

  • CentOS 6.5 64位(标准DigitalOcean镜像)

64 位版本的 Red Hat Enterprise Linux (RHEL) 6.4 或更高版本以及 CentOS 6.4 或更高版本支持 OpenShift Origin 4。 Fedora、RHEL 7.x 或 CentOS 7.x 不支持它。 建议使用 RHEL / CentOS 的最小安装以避免软件包与 OpenShift 不兼容。 本教程将在 1 GB Droplet 上使用标准的 Digital Ocean CentOS 6.5 x64 图像。

安装程序依赖项

OpenShift Origin 安装程序需要以下实用程序。 本教程将向您展示如何安装 Ruby。 其他软件包已默认安装在 DigitalOcean CentOS 6.5 映像中。

  • 卷曲
  • ruby - 1.8.7 或更高版本
  • ssh - 如果您要部署到安装程序主机以外的系统

根访问权限

本教程的其余部分将假设您使用 root 用户帐户或具有 sudo 权限的用户帐户连接到您的服务器。

要从另一个帐户进入 root shell:

sudo su

第一步——安装更新

在继续之前,确保您安装了最新的更新总是一个好主意。

要安装更新:

yum update

第二步——安装首选文本编辑器

您可以在本教程中使用您最喜欢的文本编辑器; 但是,这些示例将使用 Nano。

安装 Nano:

yum install nano

在 Nano 中编辑完文件后,按 Ctrl+X,按 Y 保存,按 Enter 覆盖现有文件。

第三步——安装 Ruby

在最小的 CentOS 6.5 安装中默认不安装 Ruby。

安装 Ruby:

yum install ruby

第四步——设置你的主机名

我们需要确保我们的主机名配置正确并解析为我们的本地机器。 如果配置不正确,Puppet 将无法部署一些必需的服务。

检查当前主机名:

hostname

它应该显示您要用于 OpenShift 控制面板的 URL。 在我们的例子中,这是 master.openshift.example.com

打开文件/etc/sysconfig/network

nano /etc/sysconfig/network

编辑文件以满足您的需要:

NETWORKING=yes
HOSTNAME=master.openshift.example.com

下次重新启动时,您的主机名将被更新。 我们将在几个步骤后重新启动。

第五步 - 使主机名解析为 localhost

这将确保 puppet 在安装过程中可以正确解析主机名。

接下来,打开文件 /etc/hosts:

nano /etc/hosts

将您的主机名添加到 127.0.0.1 行:

127.0.0.1   master.openshift.example.com localhost localhost.localdomain
::1         localhost6 localhost6.localdomain6

第六步——启用 SELinux

SELinux (Security-Enhanced Linux) 是一个 Linux 内核安全模块,它提供了一种支持访问控制安全策略的机制,包括美国国防部式的强制访问控制 (MAC)。 此内核模块是 OpenShift 安全隔离应用程序的必要条件。

有关 SELinux 的更多信息,以及在生产环境中使用 OpenShift 之前应完成的高级配置,请参阅下面链接的系列。 虽然该系列基于 CentOS 7,但原理和部署过程是相同的。

出于本教程的目的,我们将通过将 SELinux 设置为 enforcing 模式来启用它。

打开/etc/sysconfig/selinux

nano /etc/sysconfig/selinux

将 SELinux 更改为 强制

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

然后重新启动以启用我们的设置:

reboot

如果使用 SSH,则必须在重启完成后重新连接。

第七步——安装 OpenShift Origin

现在我们将安装 OpenShift Origin。

我们有三种安装 OpenShift 的选项:curl-to-shell、便携式安装程序或从源代码安装。 在本文中,我们将使用 curl-to-shell 方法安装 OpenShift Origin。

此配置将需要几分钟,而安装本身可能需要一个小时,尽管您不必为该部分照看服务器。

要启动安装程序:

sh <(curl -s https://install.openshift.com/)

(可选)安装选项

命令行选项对于大型和企业部署很有用。 如果您有预定义的配置文件或已有 Puppet 安装,则可以使用这些选项来加快安装过程。 由于这是我们在单个服务器上的第一次部署,我们不会使用下面列出的任何选项。 但是,如果您将来需要扩展 Openshift 部署,了解这些选项提供的功能很有用。

更多信息可以查看【X39X】官方文档【X65X】。

-a   --advanced-mode             Enable access to message server and db server customization
-c  --config-file FILEPATH      The path to an alternate config file
-w  --workflow WORKFLOW_ID      The installer workflow for unattended deployment
    --force                     Ignore workflow warnings and automatically install missing RPMs
-l  --list-workflows            List the workflow IDs for use with unattended deployment
-e  --enterprise-mode           Show OpenShift Enterprise options (ignored in unattended mode)
-s  --subscription-type TYPE    The software source for installation packages
-u  --username USERNAME         Login username
-p  --password PASSWORD         Login password
    --use-existing-puppet       For Origin; do not attempt to install the Puppet module
-d  --debug                     Enable debugging messages

第八步——回答安装人员的问题

OpenShift Origin 使用交互式安装过程。 有很多问题要回答,所以请注意! 问题如下所示,用户输入为 red

Welcome to OpenShift.

This installer will guide you through a basic system deployment, based
on one of the scenarios below.

Select from the following installation scenarios.
You can also type '?' for Help or 'q' to Quit:
1. Install OpenShift Origin
2. Add a Node to an OpenShift Origin deployment
3. Generate a Puppet Configuration File
Type a selection and press <return>: 1

安装程序将提示您输入安装方案。 输入1并按输入

DNS — 安装新的 DNS 服务器

----------------------------------------------------------------------
DNS Configuration
----------------------------------------------------------------------

First off, we will configure some DNS information for this system.

Do you want me to install a new DNS server for OpenShift-hosted
applications, or do you want this system to use an existing DNS
server? (Answer 'yes' to have me install a DNS server.) (y/n/q/?) y

对于本教程,我们要部署一个新的 DNS 服务器,因此输入 y 并按 Enter

DNS - 应用程序域

All of your hosted applications will have a DNS name of the form:
<app_name>-<owner_namespace>.<all_applications_domain>

What domain name should be used for all the hosted apps in your
OpenShift system? |example.com| apps.example.com

输入您要用于托管应用程序的域,在本例中为 apps.example.com,然后按 Enter

DNS — OpenShift 主机域

Do you want to register DNS entries for your OpenShift hosts with the
same OpenShift DNS service that will be managing DNS records for the
hosted applications? (y/n/q) y

What domain do you want to use for the OpenShift hosts? openshift.example.com

输入您要用于 OpenShift 主机的域,在本例中为 openshift.example.com,然后按 Enter

DNS - 名称服务器的 FQDN

Hostname (the FQDN that other OpenShift hosts will use to connect to
the host that you are describing): master.openshift.example.com

由于我们在同一个 Droplet 上托管 DNS,我们将使用这台机器的完全限定域名。 输入主机的 FQDN,在本例中为 master.openshift.example.com,然后按 Enter

DNS — SSH 主机名

Hostname / IP address for SSH access to master.openshift.example.com
from the host where you are running oo-install. You can say
'localhost' if you are running oo-install from the system that you are
describing: |master.openshift.example.com| localhost
Using current user (root) for local installation.

这是用于执行 OpenShift 安装的主机名。 由于我们正在安装到运行安装程序的同一 Droplet,因此我们可以使用 localhost。 输入localhost,按回车

DNS - IP 地址配置

如果您启用了专用网络,则需要为您希望分配节点角色的任何主机使用 WAN 接口/IP 地址。 由于我们在本教程中只安装到单个主机,因此请确保您使用 eth0 作为该主机的接口。 在具有多个 Broker 和 DBServer 的大型设置中,您将只对这些主机使用私有网络接口。 尝试在节点上使用私有接口将导致部署期间出现 IP 地址错误。

Detected IP address 104.131.174.112 at interface eth0 for this host.
Do you want Nodes to use this IP information to reach this host?
(y/n/q/?) y

Normally, the BIND DNS server that is installed on this host will be
reachable from other OpenShift components using the host's configured
IP address (104.131.174.112).

If that will work in your deployment, press <enter> to accept the
default value. Otherwise, provide an alternate IP address that will
enable other OpenShift components to reach the BIND DNS service on
this host: |104.131.174.112| 104.131.174.112

That's all of the DNS information that we need right now. Next, we
need to gather information about the hosts in your OpenShift
deployment.

出于本教程的目的,我们将使用默认设置,如上图所示。

代理配置

----------------------------------------------------------------------
Broker Configuration
----------------------------------------------------------------------
Do you already have a running Broker? (y/n/q) n

Okay. I'm going to need you to tell me about the host where you want
to install the Broker.

Do you want to assign the Broker role to master.openshift.example.com?
(y/n/q/?) y

Okay. Adding the Broker role to master.openshift.example.com.

That's everything we need to know right now for this Broker.

Do you want to configure an additional Broker? (y/n/q) n

Moving on to the next role.

安装程序现在将要求我们设置代理。 在此示例中,我们还没有任何代理,因此我们将在 master.openshift.example.com 上安装角色。

节点配置

----------------------------------------------------------------------
Node Configuration
----------------------------------------------------------------------
Do you already have a running Node? (y/n/q) n

Okay. I'm going to need you to tell me about the host where you want
to install the Node.

Do you want to assign the Node role to master.openshift.example.com?
(y/n/q/?) y

Okay. Adding the Node role to master.openshift.example.com.

That's everything we need to know right now for this Node.

Do you want to configure an additional Node? (y/n/q) n

安装程序现在将要求我们设置一个节点。 在此示例中,我们还没有任何节点,因此我们将在 master.openshift.example.com 上安装角色。 此时,安装程序还将要求您配置用户帐户。 在此示例中,我们选择让安装程序为我们生成凭据。

用户名和密码配置

Do you want to manually specify usernames and passwords for the
various supporting service accounts? Answer 'N' to have the values
generated for you (y/n/q) n

如果您想手动配置用于部署的用户名和密码,可以在此处进行。 在我们的示例中,我们决定让它们为我们自动生成。 输入n,按回车

注意输出。 您将需要本教程后面的“帐户设置”表中的值,特别是 OpenShift 控制台用户OpenShift 控制台密码

Account Settings
+----------------------------+------------------------+
| OpenShift Console User     | demo                   |
| OpenShift Console Password | S94XXXXXXXXXXXXXXXH8w  |
...

完成部署

Host Information
+------------------------------+------------+
| Hostname                     | Roles      |
+------------------------------+------------+
| master.openshift.example.com | Broker     |
|                              | NameServer |
|                              | Node       |
+------------------------------+------------+

Choose an action:
1. Change the deployment configuration
2. View the full host configuration details
3. Proceed with deployment
Type a selection and press <return>: 3

对配置满意后,输入3,按回车

存储库订阅

Do you want to make any changes to the subscription info in the
configuration file? (y/n/q/?) n

Do you want to set any temporary subscription settings for this
installation only? (y/n/q/?) n

出于本教程的目的,我们将使用默认镜像。 对于两个问题,输入 n 并按 Enter

飞行前检查

The following RPMs are required, but not installed on this host:
* puppet
* bind
Do you want to want me to try to install them for you? (y/n/q) y

安装程序现在将执行飞行前检查。 如果您需要安装任何软件包,例如我们示例中的 Puppet 和 BIND,请输入 y 并按 Enter

注意:一旦您回答了这个问题,Puppet 将在您的服务器上运行长达一个小时来配置 OpenShift Origin。

这是一些示例输出:

master.openshift.example.com: Running Puppet deployment for host
<^>Error: Could not uninstall module 'openshift-openshift_origin'
  Module 'openshift-openshift_origin' is not installed
master.openshift.example.com: Puppet module removal failed. This is expected if the module was not installed.<^>
master.openshift.example.com: Attempting Puppet module installation (try #1)
<^>Warning: Symlinks in modules are unsupported. Please investigate symlink duritong-sysctl-0.0.5/spec/fixtures/modules/sysctl/manifests->../../../../manifests.
Warning: Symlinks in modules are unsupported. Please investigate symlink duritong-sysctl-0.0.5/spec/fixtures/modules/sysctl/lib->../../../../lib.<^>
master.openshift.example.com: Puppet module installation succeeded.
master.openshift.example.com: Cleaning yum repos.
master.openshift.example.com: Running the Puppet deployment. This step may take up to an hour.

注意:输出中的红色文本用于突出显示错误和警告。

安装程序现在将执行其余的部署。 在此过程中,您可能会看到一些警告(见上图)。 这些都是正常的,不会影响部署。 此过程可能需要一个多小时才能完成。

重新部署

如果 Puppet 第一次没有正确配置所有内容,您可以重新运行 Puppet 部署,而无需再次运行整个配置。 如果您在首次访问 OpenShift Origin 仪表板时看到错误,您可能需要这样做。

再次运行安装程序:

sh <(curl -s https://install.openshift.com/)

这一次,您将选择第三个选项,以生成新的 Puppet 配置文件。 并非所有输出都显示在下面 - 只是问题和答案。

Select from the following installation scenarios.
You can also type '?' for Help or 'q' to Quit:
1. Install OpenShift Origin
2. Add a Node to an OpenShift Origin deployment
3. Generate a Puppet Configuration File
Type a selection and press <return>: 3

Choose an action:
1. Change the deployment configuration
2. View the full host configuration details
3. Proceed with deployment
Type a selection and press <return>: 3

Do you want to make any changes to the subscription info in the
configuration file? (y/n/q/?) n

Do you want to set any temporary subscription settings for this
installation only? (y/n/q/?) n

记下输出中显示的文件名:

Puppt template created at /root/oo_install_configure_master.openshift.example.com.pp
To run it, copy it to its host and invoke it with puppet: `puppet
apply <filename>`.

All tasks completed.
oo-install exited; removing temporary assets.

使用给定的文件名运行 Puppet 配置:

puppet apply /root/oo_install_configure_master.openshift.example.com.pp

第九步——测试你的 OpenShift 部署

您的 OpenShift 安装现已完成。 您可以通过在 Web 浏览器中访问以下 URL 来测试您的 OpenShift 部署。

https://104.131.174.112/

OpenShift 将使用自签名证书,因此您必须在 Web 浏览器中为此添加一个例外。

如果您之前没有记下凭据,请向上滚动到“帐户设置”输出部分,然后使用 OpenShift 控制台用户OpenShift 控制台密码 登录。

Account Settings
+----------------------------+------------------------+
| OpenShift Console User     | demo                   |
| OpenShift Console Password | tARvXXXXXXXmm5g        |
| MCollective User           | mcollective            |
| MCollective Password       | dtdRNs8i1pWi3mL9JsNotA |
| MongoDB Admin User         | admin                  |
| MongoDB Admin Password     | RRgY8vJd2h5v4Irzfi8kkA |
| MongoDB Broker User        | openshift              |
| MongoDB Broker Password    | 28pO0rU8ohJ0KXgpqZKw   |
+----------------------------+------------------------+

如果您可以登录控制台但看到错误,则可能需要重新部署 Puppet 配置。 有关详细信息,请参阅上一节。

第十步——为 OpenShift 配置你的域

通常,您需要按照域注册商的文档来创建 DNS 条目。 我们在下面提供了图片用于说明目的。 对于名称服务器域,您需要替换 OpenShift 主机或 BIND DNS 服务器的 IP 地址。 在我们的示例中,我们创建了两个指向同一 IP 的名称服务器记录。 这是因为大多数域名注册商至少需要两条 NS 记录。 在本教程中,我们没有设置辅助绑定 DNS 服务器。

example-dns.com 一条记录 | ns1.example-dns.com => 104.131.174.112 一条记录 | ns2.example-dns.com => 104.131.174.112

指示应用程序域使用您刚刚设置的 OpenShift DNS 服务器。

example.com NS 记录 | ns1.example.com。 NS 记录 | ns2.example.com

注意:出于测试目的,您也可以将您的应用程序域或子域指向 OpenShift 服务器的 IP 地址,因为我们目前只部署一个 OpenShift Origin 服务器。

现在,您将能够从代理的域名访问 OpenShift 控制台。 在我们的示例中,我们使用了 master.openshift.example.com。 您必须再次使用新域为自签名证书添加例外。

有关配置 DNS 记录的详细信息,请参阅下面列出的教程。

如何使用 DigitalOcean 云服务器创建虚荣或品牌名称服务器

如何使用 DigitalOcean 的 DNS 面板设置和测试 DNS 子域

如何从公共域注册商指向 DigitalOcean 域名服务器

第十一步——创建你的第一个应用程序

在 OpenShift Origin 控制台中,单击 Applications 页面上的 Create your first application now

单击 PHP 5.4 选择它作为您的墨盒。

由于这是您的第一个应用程序,您还必须指定一个域名。 在我们的示例中,我们使用了 demo.apps.example.com 和应用程序名称 php。 最终 URL 将是 php-demo.apps.example.com

保留其余默认设置。

单击创建应用程序。 初始化应用程序可能需要几分钟。 完成此过程后,您可以单击浏览器中的访问应用程序查看测试应用程序。 您会看到默认的 PHP 插件页面。 此页面还将为您提供有关如何使用 OpenShift 编辑和部署应用程序的有用信息。

结论

我们已经成功部署了一个单服务器 Openshift Origin 环境。 该服务器应用了所有四个 OpenShift 角色。 它还被配置为 DNS 服务器。 我们配置了一个域 (example-dns.com) 用于我们的名称服务器指针。 我们配置了第二个域 (example.com) 用于解析应用程序和 OpenShift 主机。