Red Hat Enterprise Linux Openstack Platform 7 Bare Metal Provisioning
Total Page:16
File Type:pdf, Size:1020Kb
Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning 安装、配置和使用 Bare Metal Provisioning(Ironic) OpenStack Team Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning 安装、配置和使用 Bare Metal Provisioning(Ironic) OpenStack Team [email protected] 法律通告 Copyright © 2017 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. 摘要 本文档介绍了在一个 Red Hat Enterprise Linux OpenStack Platform 环境的 Overcloud 中安装、配置 和使用 Bare Metal Provisioning 的方法。 目录 目录 序. 言. .3 . 第. .1 . 章. .安 . 装. 和. .配 . .置 . O. .P .E .N . S. T. .A .C . K. .B . A. .R .E . .M . E. T. A. .L . P. .R .O . V. I.S . I.O . N. I.N . G. (. I.R . O. .N .I C. .) . .4 . 1.1. 配置要求 4 1.1.1. Bare Metal Provisioning 安装的假设条件 4 1.1.2. Bare Metal Provisioning 的硬件要求 4 1.1.3. Bare Metal Provisioning 的网络要求 5 1.2. 订阅所需的频道 5 1.3. 安装 BARE METAL PROVISIONING 软件包 6 1.4. 创建 BARE METAL PROVISIONING 数据库 6 1.5. 创建 BARE METAL PROVISIONING IDENTITY 记录 7 1.6. 配置 BARE METAL PROVISIONING 身份验证 8 1.7. 配置防火墙来允许 BARE METAL PROVISIONING 的网络流量 9 1.8. 为 BARE METAL PROVISIONING 设置 RABBITMQ MESSAGE BROKER 9 1.9. 配置 BARE METAL PROVISIONING 与 OPENSTACK NETWORKING 和 OPENSTACK IMAGE 进行通讯 1.10. 配置 OPENSTACK COMPUTE 来使用 BARE METAL PROVISIONING 11 10 1.11. 配置 OPENSTACK NETWORKING 来与 BARE METAL PROVISIONING 进行交流 12 第. .2 . 章. .配 . 置. 裸. .机 . .实 . .施 . .1 .5 . 2.1. 配置 BARE METAL PROVISIONING 驱动 15 2.2. 创建上传镜像 15 2.3. 创建 BARE METAL PROVISIONING FLAVOR 18 2.4. 为 BARE METAL PROVISIONING 配置 PXE 19 2.5. 配置硬件內省 20 2.6. 添加物理机器作为裸机节点 22 2.6.1. 利用硬件內省功能添加节点 23 2.6.2. 手工添加节点 24 2.7. 使用主机集合来分离物理机部署和虚拟机部署 26 2.8. 示例:使用SSH 和 VIRSH 测试 BARE METAL PROVISIONING 27 2.8.1. 创建虚拟的裸机节点 28 2.8.2. 创建一个 SSH 密钥对 28 2.8.3. 添加虚拟节点作为裸机节点 29 第. .3 . 章. .启 . 动. 裸. .机 . .实 . .例 . .3 .1 . 3.1. 使用命令行接口实施实例 31 3.2. 通过 DASHBOARD 实施实例 31 第. .4 . 章. .对 . .B . A. .R .E . .M . E. T. A. .L . P. R. .O . V. I.S . I.O .N . I.N . G. 进 . .行 . .故 . 障. 排. .除 . .3 .3 . 4.1. 对硬件注册进行故障排除 33 4.2. 排除 NO VALID HOST 错误 33 4.3. 对硬件內省的故障排除 34 附. 录. .A .. .B . A. .R .E . .M . E. T. A. .L . P. R. .O . V. I.S . I.O .N . I.N . G. .驱 . .动 . .3 .5 . A.1. INTELLIGENT PLATFORM MANAGEMENT INTERFACE (IPMI) 35 A.2. DELL REMOTE ACCESS CONTROLLER (DRAC) 35 A.3. INTEGRATED LIGHTS-OUT (ILO) 35 A.4. IBOOT 36 A.5. SSH 和 VIRSH 36 1 Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning 2 序言 序言 本文档介绍了在 Overcloud 中安装和配置 Bare Metal Provisioning (ironic) 作为一个 OpenStack 服务 的方法,以及使用这个服务为最终用户部署和管理物理机的方法。通过配置这个服务,用户可以象启 用虚拟机实例一样,在物理机上启用实例。 作为 Undercloud 的一部分,Bare Metal Provisioning 组件也被 Red Hat Enterprise Linux OpenStack Platform director 使用来部署和管理构成 OpenStack 环境(Overcloud)的裸机节点。如需了解 director 如何使用 Bare Metal Provisioning 服务的信息,请参阅 Director Installation and Usage。 3 Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning 第 1 章 安装和配置 OPENSTACK BARE METAL PROVISIONING(IRONIC) OpenStack Bare Metal Provisioning(ironic)提供了为最终用户部署和管理物理机所需的组件。 Overcloud 中的 Bare Metal Provisioning 服务会和以下 OpenStack 服务进行交流: OpenStack Compute(nova)提供了虚拟机实例的调度、租户配额、IP 配置功能,以及用于虚拟 机实例管理的一个面向用户的 API;而 Bare Metal Provisioning 为硬件管理提供了一个管理 API。请选择一个独立的、专用的 openstack-nova-compute 主机来使用 Bare Metal Provisioning 驱动,并处理 Bare Metal Provisioning 请求。 OpenStack Identity(keystone)提供了请求的身份验证功能,并帮助 Bare Metal Provisioning 定 位其它 OpenStack 服务。 OpenStack Image 服务(glance)提供了管理镜像以及镜像元数据的功能。 OpenStack Networking(neutron)提供了 DHCP 和网络配置功能。 1.1. 配置要求 本章介绍了设置 Bare Metal Provisioning 所需的配置要求,包括安装的假设条件、硬件要求和网络要 求。 1.1.1. Bare Metal Provisioning 安装的假设条件 Bare Metal Provisioning 包括了一组组件,这些组件可以被配置为在一个节点上运行,也可以配置为 在多个独立节点上运行。本文档中所使用的示例是在一个节点上安装并配置所有 Bare Metal Provisioning 组件。同时,本文档还基于所有 OpenStack Identity、OpenStack Image、OpenStack Compute 和 OpenStack Networking 服务都已经被安装并配置这一个假设条件的。另外,Bare Metal Provisioning 还需要以下外部服务,这些服务需要作为先决条件已被安装并配置: 一个用来保存硬件信息和状态的数据库服务器。本文档假设 RHEL OpenStack Platform 环境已配 置了 MariaDB 数据库服务。 一个消息服务。本文档假设已在环境中配置了 RabbitMQ。 如果您使用 director 部署 OpenStack 环境,数据库服务和消息服务会在 Overcloud 中的一个 Controller 节点上安装。 RHEL OpenStack Platform 需要在运行 Red Hat Enterprise Linux 7 的 Compute 节点和 OpenStack Networking 节点上使用 iptables 而不是 firewalld。本文档中使用的防火墙规则都是通过 iptables 设置的。 1.1.2. Bare Metal Provisioning 的硬件要求 运行 Bare Metal Provisioning 组件的节点需要满足以下的硬件要求: 支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。 最少 6GB 内存。 最少具有 40GB 可用磁盘空间。 最少两个 1 Gbps 网卡。但是,推荐使用 10 Gbps 网卡来作为 Provisioning 网络的接口(特别是 您需要部署大量裸机时)。 4 第 1 章 安装和配置 OPENSTACK BARE METAL PROVISIONING(IRONIC) 安装 Red Hat Enterprise Linux 7.1 作为主机操作系统。 或者,在一个专门的 openstack-nova-compute 节点上安装并配置 Bare Metal Provisioning 组件。 如需了解和硬件要求相关的信息,请参阅 Director Installation and Usage 指南中的 Compute Node Requirements 一节。 根据您所要安装的操作系统的不同,所部署的裸机的硬件要求也会有所不同。对于 Red Hat Enterprise Linux 7,请参阅 Red Hat Enterprise Linux 7 Installation Guide。对于 Red Hat Enterprise Linux 6,请参阅 Red Hat Enterprise Linux 6 Installation Guide。 1.1.3. Bare Metal Provisioning 的网络要求 Bare Metal Provisioning 最少需要两个网络: Provisioning 网络:Bare Metal Provisioning 用来部署和管理裸机的私人网络,它提供了 DHCP 和 PXE 引导功能来帮助发现裸机系统。这个网络最好使用一个主干(trunk)接口中的原生 VLAN,这样 Bare Metal Provisioning 就可以处理 PXE 引导和 DHCP 请求。另外,这个网络还被 用来通过被部署的裸机上的带外(out-of-band) 驱动控制电源管理。 External 网络 - 用来进行远程连接的一个独立网络。连接到这个网络的接口需要一个可路由的 IP 地址(静态定义或通过一个外部 DHCP 服务动态分配)。 要被部署的裸机需要满足以下要求: 两个网卡:一个作为 provisioning 网络,另一个用于外部连接。 连接到 provisioning 网络上的一个电源管理接口(如 IPMI)。如果您只需要使用 SSH 用于测 试,则不需要这个接口。 在 provisioning 网络中的 PXE 引导处于系统引导顺序的最前面(在硬盘引导和 CD/DVD 引导之 前)。系统中的所有其它网卡都需要禁用 PXE 引导。 1.2. 订阅所需的频道 为了安装 Bare Metal Provisioning 软件包,需要使用 Red Hat Subscription Manager 注册您的服务 器。如果您在一个 compute 节点上安装 Bare Metal Provisioning,您的服务器可能已经进行了适当的 订阅。运行 yum repolist 命令检查在以下操作中使用的频道是否已经被订阅。 订阅所需的频道 1. 在 Content Delivery Network 中注册您的系统,在提示时输入您的客户门户网站(Customer Portal)的用户名和密码: # subscription-manager register 2. 找到包括安装 Bare Metal Provisioning 所需频道的权利池: # subscription-manager list --available | grep -A8 "Red Hat Enterprise Linux Server" # subscription-manager list --available | grep -A8 "Red Hat Enterprise Linux OpenStack Platform" 3. 使用在上一步所获得的权利池 ID 把 Red Hat Enterprise Linux Server 7 和 Red Hat Enterprise Linux OpenStack Platform 的权利附加到系统上。运行以下命令: 5 Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning # subscription-manager attach --pool=POOL_ID 4. 启用所需的频道: # subscription-manager repos --enable=rhel-7-server-rpms -- enable=rhel-7-server-openstack-7.0-rpms --enable=rhel-7-server- rh-common-rpms --enable=rhel-7-server-optional-rpms -- enable=rhel-7-server-openstack-7.0-optools-rpms 1.3. 安装 BARE METAL PROVISIONING 软件包 Bare Metal Provisioning 需要以下软件包: openstack-ironic-api 提供 Bare Metal Provisioning API 服务。 openstack-ironic-conductor 提供 Bare Metal Provisioning 的 conductor 服务。conductor 允许添加、编辑和删除节点、关闭或开 启带有 IPMI 或 SSH 功能的节点,并可以部署、实施和停用裸机节点。 python-ironicclient 为和 Bare Metal Provisioning 服务进行交流提供一个命令行接口。 安装软件包: # yum install openstack-ironic-api openstack-ironic-conductor python- ironicclient 1.4. 创建 BARE METAL PROVISIONING 数据库 创建 Bare Metal Provisioning 使用的数据库。在这个过程中进行的所有操作都需要在数据库服务器上 进行,并需要以 root 用户登录。 创建 Bare Metal Provisioning 数据库 1. 连接到数据库服务: # mysql -u root -p 2. 创建 ironic 数据库: mysql> CREATE DATABASE ironic; 3. 创建一个 ironic 数据库用户,并为这个用户分配可以访问 ironic 数据库的权限: mysql> GRANT ALL ON ironic.* TO 'ironic'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL ON ironic.* TO 'ironic'@'localhost' IDENTIFIED BY 'PASSWORD'; 6 第 1 章 安装和配置 OPENSTACK BARE METAL PROVISIONING(IRONIC) 把 PASSWORD 替换为用户在数据库服务器上进行验证的密码。 4. 刷新数据库权限使它们马上生效: mysql> FLUSH PRIVILEGES; 5. 退出 mysql 客户端: mysql> quit 6. 设置 connection 配置关键字的值: # openstack-config --set /etc/ironic/ironic.conf \ database connection mysql://ironic:PASS@IP/ironic 替换以下值: 使用数据库用户的密码替换 PASS。 使用数据库服务器的 IP 地址或主机名替换 IP。 重要 在 "connection" 配置关键字中指定的 IP 地址或主机名必须和在创建 Bare Metal Provisioning 数据库时设置的 Bare Metal Provisioning 数据库用户可以访问的系统的 IP 地 址或主机名相匹配。如果创建的数据库是一个本地数据库,并分配给数据库用户访问 localhost 的权限,您必须使用 localhost。 1.5. 创建 BARE METAL PROVISIONING IDENTITY 记录 创建 Bare Metal Provisioning 所需的 Identity 记录。这些记录可以帮助其它 OpenStack 服务定位并访 问 Bare Metal Provisioning 提供的功能。 这个过程假设您已经创建了一个管理用户账户和一个 services 租户。 在 Identity 服务器上进行这个过程;或在任何已经复制了 keystonerc_admin 文件并安装了 keystone 命令行工具的系统上进行。 为 Bare Metal Provisioning 创建 Identity 记录 1. 把 shell 设置为以管理用户身份访问 Identity: # source ~/keystonerc_admin 2. 创建 ironic 用户: # keystone user-create --name ironic \ --pass PASSWORD \ --email IRONIC_EMAIL 使用 Bare Metal Provisioning 用来和 Identity 进行验证时使用的密码替换 PASSWORD;使 用 Bare Metal Provisioning 所使用的电子邮件地址替换 IRONIC_EMAIL。 7 Red Hat Enterprise Linux OpenStack Platform 7 Bare Metal Provisioning 3.