配置控制台¶
概述¶
Bare Metal 服务中可用的控制台类型有三种
节点图形控制台¶
图形控制台驱动程序需要配置并运行 ironic-novncproxy 服务。每个支持的驱动程序如下所述。
redfish-graphical¶
适用于 Redfish 主机子集的一个驱动程序。启动控制台将启动一个容器,该容器暴露一个 VNC 服务器供 ironic-novncproxy 附加。附加后,将启动一个浏览器,显示基于 HTML5 的控制台,支持以下主机
Dell iDRAC
HPE iLO
Supermicro
[DEFAULT]
enabled_hardware_types = redfish
enabled_console_interfaces = redfish-graphical,no-console
fake-graphical¶
用于演示工作图形控制台基础设施的一个驱动程序。启动控制台将启动一个容器,该容器暴露一个 VNC 服务器供 ironic-novncproxy 附加。附加后,将启动一个浏览器,显示一个动画。
[DEFAULT]
enabled_hardware_types = fake-hardware
enabled_console_interfaces = fake-graphical,no-console
节点网页控制台¶
可以在 Bare Metal 服务中以以下方式配置网页控制台
在 ironic conductor 节点上安装 shellinabox。对于 RHEL/CentOS,shellinabox 包不在基本仓库中,用户必须启用 EPEL 仓库,更多信息请参见 FedoraProject 页面。
警告
Shell In A Box 已被 Ironic 社区认为已废弃。原始维护者已停止维护该项目,因此该项目已被分叉。由此产生的 分叉 已经多年没有更新,也被认为已废弃。因此,shellinabox 支持已被 Ironic 社区弃用。
安装示例
Ubuntu
sudo apt-get install shellinabox
RHEL/CentOS/Fedora
sudo dnf install shellinabox
您可以在 shellinabox 页面 上找到更多关于 shellinabox 的信息。
您可以选择在 shellinabox 中使用 SSL 证书。如果您想在 shellinabox 中使用 SSL 证书,则应安装 openssl 并生成 SSL 证书。
安装 openssl,例如
Ubuntu
sudo apt-get install openssl
RHEL/CentOS/Fedora
sudo dnf install openssl
生成 SSL 证书,这里是一个示例,您可以在 openssl 页面 上找到更多关于 openssl 的信息
cd /tmp/ca openssl genrsa -des3 -out my.key 1024 openssl req -new -key my.key -out my.csr cp my.key my.key.org openssl rsa -in my.key.org -out my.key openssl x509 -req -days 3650 -in my.csr -signkey my.key -out my.crt cat my.crt my.key > certificate.pem
自定义 Bare Metal 服务配置文件 (/etc/ironic/ironic.conf) 中的控制台部分。如果您想在 shellinabox 中使用 SSL 证书,则应指定
terminal_cert_dir。例如[console] # # Options defined in ironic.drivers.modules.console_utils # # Path to serial console terminal program. Used only by Shell # In A Box console. (string value) #terminal=shellinaboxd # Directory containing the terminal SSL cert (PEM) for serial # console access. Used only by Shell In A Box console. (string # value) terminal_cert_dir=/tmp/ca # Directory for holding terminal pid files. If not specified, # the temporary directory will be used. (string value) #terminal_pid_dir=<None> # Time interval (in seconds) for checking the status of # console subprocess. (integer value) #subprocess_checking_interval=1 # Time (in seconds) to wait for the console subprocess to # start. (integer value) #subprocess_timeout=10
将控制台参数附加到 Bare Metal 服务的 PXE 启动配置文件 (/etc/ironic/ironic.conf)。请参阅 将内核参数附加到启动实例 中的配置参考。
启用
ipmitool-shellinabox控制台接口,例如[DEFAULT] enabled_console_interfaces = ipmitool-shellinabox,no-console
配置节点网页控制台。
如果节点使用硬件类型,例如
ipmi,则将节点的控制台接口设置为ipmitool-shellinaboxbaremetal node set <node> --console-interface ipmitool-shellinabox
启用网页控制台,例如
baremetal node set <node> \ --driver-info <terminal_port>=<customized_port> baremetal node console enable <node>
检查是否已启用控制台,例如
baremetal node validate <node>
禁用网页控制台,例如
baremetal node console disable <node> baremetal node unset <node> --driver-info <terminal_port>
<terminal_port>取决于驱动程序。此字段的实际名称可以在驱动程序属性中检查,例如baremetal driver property list <driver>
对于
ipmi硬件类型,此选项是ipmi_terminal_port。为<customized_port>提供一个自定义端口号,例如8023,此自定义端口用于网页控制台 url。如下获取节点的网页控制台信息
baremetal node console show <node> +-----------------+----------------------------------------------------------------------+ | Property | Value | +-----------------+----------------------------------------------------------------------+ | console_enabled | True | | console_info | {u'url': u'http://<url>:<customized_port>', u'type': u'shellinabox'} | +-----------------+----------------------------------------------------------------------+
您可以使用上述
url通过网页浏览器打开网页控制台。如果console_enabled为false,console_info为None,则网页控制台已禁用。如果您想启动网页控制台,请参阅配置 节点 网页 控制台部分。注意
在启用控制台时,您可能会遇到一个错误消息,该消息显示
控制台 子进程 启动失败。 等待控制台子进程启动超时或出错,节点以及[server] 找不到任何可用端口!。此错误来自 shellinabox 本身,而不是与 BMC 的通信。此问题的一个潜在原因是已经运行了 shellinabox 守护进程,它们阻塞了配置的端口(如果合适,请删除它们并重试启用控制台)。
节点串口控制台¶
节点的串口控制台使用 socat 实现。它受 ipmi、irmc 和 redfish 硬件类型支持。
注意
在任何硬件类型上使用 ipmitool-socat 控制台接口需要在节点的 driver_info 字段中设置 ipmi 连接参数。
可以在 Bare Metal 服务中配置串口控制台,如下所示
在 ironic conductor 节点上安装 socat。此外,
socat需要在 ironic-conductor 服务使用的 $PATH 环境变量中。安装示例
Ubuntu
sudo apt-get install socat
RHEL/CentOS/Fedora
sudo dnf install socat
将控制台参数附加到 Bare Metal 服务的 PXE 启动配置文件。请参阅 将内核参数附加到启动实例 中关于如何配置它们的参考。
启用
ipmitool-socat控制台接口,例如[DEFAULT] enabled_console_interfaces = ipmitool-socat,no-console
配置节点控制台。
如果节点使用硬件类型,例如
ipmi,则将节点的控制台接口设置为ipmitool-socatbaremetal node set <node> --console-interface ipmitool-socat
启用串口控制台,例如
baremetal node set <node> --driver-info ipmi_terminal_port=<port> baremetal node console enable <node>
检查是否已启用串口控制台,例如
baremetal node validate <node>
禁用串口控制台,例如
baremetal node console disable <node> baremetal node unset <node> --driver-info <ipmi_terminal_port>
串口控制台信息可从 Bare Metal 服务获取。如下从 Bare Metal 服务获取节点的串口控制台信息
baremetal node console show <node>
+-----------------+----------------------------------------------------------------------+
| Property | Value |
+-----------------+----------------------------------------------------------------------+
| console_enabled | True |
| console_info | {u'url': u'tcp://<host>:<port>', u'type': u'socat'} |
+-----------------+----------------------------------------------------------------------+
如果 console_enabled 为 false 或 console_info 为 None,则串口控制台已禁用。如果您想启动串口控制台,请参阅 配置 节点 控制台。
Bare Metal 服务的节点串口控制台与 Compute 服务的串口控制台兼容。因此,可以通过 Dashboard 服务查看和交互 Bare Metal 节点的串口控制台。为此,您需要遵循 Compute 服务的 串口 文档。
配置 HA¶
在 HA (高可用性) 配置下使用 Bare Metal 串口控制台时,您可能需要考虑以下设置。
如果您使用 HAProxy,您可能需要为客户端和服务器端设置具有适当值的超时时间。以下是超时参数配置的一个示例。
frontend nova_serial_console bind 192.168.20.30:6083 timeout client 10m # This parameter is necessary use_backend nova_serial_console if <...> backend nova_serial_console balance source timeout server 10m # This parameter is necessary option tcpka option tcplog server controller01 192.168.30.11:6083 check inter 2000 rise 2 fall 5 server controller02 192.168.30.12:6083 check inter 2000 rise 2 fall 5
Compute 服务的缓存功能可能需要在 HA 配置下启用,才能使 Bare Metal 串口控制台正常工作。以下是
nova.conf中的缓存配置示例。[cache] enabled = true backend = dogpile.cache.memcached memcache_servers = memcache01:11211,memcache02:11211,memcache03:11211