Ironic通过driver管理、部署裸机节点。
节点注册(Enroll)时选择driver类型。
从O版本,Ironic的driver支持两种类型,一种是classic drivers,一种是hardware types,而且以后会 停止支持classtic drivers.
classic drivers和hardware types的关系:
- 相同点
- 从用户角度看,hardware types 和 Classic driver 都是对应 node 表的
driver
字段 - 都是由一系列hardware interfaces组成,每个 hardware interface 用来处理特定厂商裸机的某些配置。
- 不同点
- Classic driver 把所有的 hardware interface 都硬编码到了一起,而 hardware types 只申明了兼容哪些 hardware interface
Classic driver类:例如pxe_impi是一个classtic driver,在你创建驱动的时候, 使用的 power, boot, console, management, deploy, raid 等模块都是固定好了
1 class PXEAndIPMIToolDriver(base.BaseDriver): 2 3 def __init__(self): 4 self.power = ipmitool.IPMIPower() 5 self.console = ipmitool.IPMIShellinaboxConsole() 6 self.boot = pxe.PXEBoot() 7 self.deploy = iscsi_deploy.ISCSIDeploy() 8 self.management = ipmitool.IPMIManagement() 9 self.inspect = inspector.Inspector.create_if_enabled( 10 'PXEAndIPMIToolDriver') 11 self.vendor = ipmitool.VendorPassthru() 12 self.raid = agent.AgentRAID()
Hardware types类:例如ipmi,定义了支持哪些hardware interfaces
1 class IPMIHardWare(generic.GenericHardware): 2 @property 3 def supported_console_interfaces(self): 4 return [ipmitool.IPMISocatSonsole, ipmitool.IPMIShellinaboxConsole, 5 noop.NoConsole]
2. 配置不同。classic drivers仅配置driver就可,hardware types需要配置关联的hardware interfaces,也可以配置默认的interface。
P版本官网介绍:
参考:
https://ironic-book.readthedocs.io/zh_CN/latest/install/enabling-drivers.html
https://docs.openstack.org/ironic/pike/install/enabling-drivers.html