安装与启动
配置准备
Ironic需要与Nova、Neutron、Glance、Keystone、Cinder等进行交互,于是先要对这些进行配置
- 配置Keystone。 创建用户、服务、endpoint
- 配置数据库
- 安装ironic组件
服务概述
Bare Metal service由一系列组件组成,这些组件能够管理和提供物理物理机。
Ironic项目根据配置与其他服务进行交互,包括:
- 监控模块(ceilometer),用于消费IPMI指标
- 认证模块(keystone)
Ironic服务由以下组件构成。
- Ironic API,一个RESTful API服务,管理员和其他服务通过API与Ironic进行交互;
- Ironic Conductor, 完成Ironic服务的绝大部分工作,通过API对外开放其功能,与API通过RPC进行交互;
- Dirvers,通过一系列的驱动来支持不同的硬件;
- 消息队列
- Database,用来存储资源信息。
project架构
- ironic: 包含ironic-api 和ironic-conductor进程
- python-ironicclinet: python clinet and CLI
- ironic-python-agent: 用于加载厂商的驱动,嵌入deployment ramdisk中
- pyghmi: 一个python的IPMI库,是一个可供选择的IPMItool
- ironic-inspector: 硬件自检工具
- bifrost:单独部署Ironic的Ansible脚本
- ironic-lib: 通用库函数
- ironic-webclinet :web客户端
- ironic-ui: ironic的horizon插件
部署架构 云平台管理员可以使用RESTful API注册硬件,制定硬件的属性,比如MAC地址、IPMI证书。可以开启多个API服务实例。
由于Ironic Conductor是唯一一个需要访问数据层和IPMI控制层的服务,为了安全起见,最好将conductor service 放在一个独立的主机上。 为了支持各类驱动和管理故障迁移,可以有多个conductor实例存在,每个conductor实例可以运行多个drivers,conductor实例应该放在单独的节点上。