随着业务不断更新,部分业务堆基础设施的硬件要求也越来越高,普通的云主机会存在极端情况下资源抢占的问题,影响业务,或者有时超分比过高,导致虚机存在st值,影响业务 ,所以越来越多的业务直接使用裸金属服务,但是裸金属服务也有弊端,比如最常见的业务维护者操作错误,导致远程ssh不可用或者网络服务故障等,那么此时,服务器厂商提供的带外(可以访问之前的博客,常见ipmitool:)便起到作用,但是该功能需要帐号密码登陆服务器带外,为了安全起见,云服务器厂商不愿意提供带外账号密码。
针对这种需求,需要一个类似虚机vnc一样的远程控制台,那么openstack官方便提供了两种方式:shellinabox和 socat
裸机服务中提供两种类型的控制台, 一个是Web控制台(Node Web控制台),可直接从Web获得 浏览器,另一个是串行控制台(Node serial Console)。其实有shellinabox和 socat
对于 RHEL/CentOS,shellinabox 包 在基本存储库中不存在,用户必须启用 EPEL 存储库,才能正常安装
[root@control01 ~ 12:01:35]# yum install shellinabox
[root@control01 ~ 12:01:35]# /etc/ironic/ironic.conf. # 在该配置文件中加入ipmitool-shellinabox
[DEFAULT]
enabled_console_interfaces = ipmitool-shellinabox,no-console
[root@control01 ~ 12:01:35]# openstack baremetal node set --console-interface ipmitool-shellinabox
[root@control01 ~ 12:01:35]# openstack baremetal node set \
--driver-info <terminal_port>=<customized_port>
baremetal node console enable <node>
[root@control01 ~ 12:01:35]# openstack baremetal node validate
[root@control01 ~ 12:01:35]# openstack baremetal node console disable
[root@control01 ~ 12:01:35]# openstack baremetal node unset --driver-info
### 确认下依赖 自定义端口号提供, 例如,此自定义端口用于 Web 控制台 URL。
[root@control01 ~ 12:01:35]# baremetal driver property list
[root@control01 ~ 12:01:35]# openstack baremetal node console show
+-----------------+----------------------------------------------------------------------+
| Property | Value |
+-----------------+----------------------------------------------------------------------+
| console_enabled | True |
| console_info | {u'url': u'http://:' , u'type': u'shellinabox'} |
+-----------------+----------------------------------------------------------------------+
[root@control01 ~ 12:01:35]# yum install socat
[root@control01 ~ 12:01:35]# /etc/ironic/ironic.conf.
[DEFAULT]
enabled_console_interfaces = ipmitool-socat,no-console
[root@control01 ~ 12:01:35]# openstack baremetal node set --console-interface ipmitool-socat
[root@control01 ~ 12:01:35]# openstack baremetal node set --driver-info ipmi_terminal_port= # 配置节点控制台。
[root@control01 ~ 12:01:35]# openstack baremetal node console enable # 启用串行控制台
[root@control01 ~ 12:01:35]# openstack baremetal node validate . # 检查串口控制台是否开启
# 禁用串行控制台
[root@control01 ~ 12:01:35]# openstack baremetal node console disable
[root@control01 ~ 12:01:35]# openstack baremetal node unset --driver-info
## 测试
baremetal node console show <node>
+-----------------+----------------------------------------------------------------------+
| Property | Value |
+-----------------+----------------------------------------------------------------------+
| console_enabled | True |
| console_info | {u'url': u'tcp://:' , u'type': u'socat'} |
+-----------------+----------------------------------------------------------------------+