Ironic-Python-Agent
Ironic-Python-Agent
在PXE部署环境中,deploy模块是通过打开一个iSCSI设备,ironic-conductro将OS的镜像文件写到iSCSI的设备,所以deploy_ramdisk只是完成了iSCSI部署的工作,但开发者觉得既然已经把kernel和ramdisk传过去了,只做一个工作是不是太少了,而且还太缺乏灵活性了,所以就想在ramdisk里装一个Python Agent。 实际上就是多提供了一个Restful API,控制节点可以通过这个agent远程实现与物理机节点互动,而不仅仅使用dd命令。
Ironic Python Agent(简称IPA或者agent)是一个基于python的代理,用于处理ironic中裸机节点的一系列动作,比如检查、配置、清除和部署镜像。运行在ramdisk中,暴露出REST API给conductor。Ironic-Python-Agent可以在deploy模块直接访问硬件,提供以下功能:
- 磁盘格式化
- 磁盘分区
- 安装OS( Bootloaders, OS)
- 固件升级
- raid配置
在Condutor端使用agent驱动,物理机端使用IPA,IPA通过暴露API给Condutor调用,则可完成相应功能。IPA启动时通过发送lookup()请求给Condutor获取UUID,相当于注册自己,并且每隔一段时间给Condutor发送心跳包进行连接。
1. 与conductor的交互
IPA使用lookup和hearteat机制与Ironic Conductor进行交互
- 启动时agent给Conductor的vendor_passthru lookup endpoint(地址为/v1/drivers/{driver}/vendor_passthru/lookup)发送一个硬件的profile
- 然后Ironic就可以得出该节点的uuid,在成功发现该节点之后,agent隔N秒发送心跳包给Conductor(hearteat地址为/v1/nodes/{node_ident}/vendor_passthru/heartbeat )
- conductor执行一系列动作,包括查询已经运行的命令的状态,
2. 与ramdisk、agent的关系
IPA是一个运行在ramdisk中python程序,当物理机注册时使用agent为前缀的驱动时,则会使用agent方式部署,即允许包含有IPA的ramdisk。
3. 硬件管理
硬件管理器(HardwareManager)是IPA中的一个概念,IPA通过重写硬件管理器来支持多种硬件平台。通过自定义 hardware managers 可以允许用户引入特定的硬件工具集、文件和清除步骤等等,比如可以引入 BIOS flashing utility and BIOS file,然后在cleaning step中重写BIOS版本。
修改硬件的方法按照优先顺序发送给每个管理器,管理器检查是否包含该方法,如果没有则抛出IncompatibleHardwareMethodError异常,IPA继续发送给下一个管理器,直到某个管理器包含该方法并且返回方法的结果,如果所有的管理器都没有改方法则抛出 HardwareManagerMethodNotFound异常。
转载于:https://www.cnblogs.com/gushiren/p/9512809.html
Ironic-Python-Agent相关推荐
- 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践
背景 目前,所有号称性能损耗小的VM技术,实际上都会有5-15%甚至更高的损耗.作为替代方案,如Gartner在2015年发布的报告"Market Trends: The Rise of B ...
- dnsmasq mysql_OpenStack Ironic之inspect自检
作为一个基于python的代理,它可用于处理ironic中裸机节点的一系列动作,比如检查.配置.清除和部署镜像,暴露API给ironic-conductor,IPA使用lookup和hearteat机 ...
- 理解裸机部署过程ironic
部署物理机跟部署虚拟机的概念在nova来看是一样,都是nova通过创建虚拟机的方式来触发,只是底层nova-scheduler和nova-compute的驱动不一样.虚拟机的底层驱动采用的libvir ...
- 【ironic】ironic介绍与原理
[ironic]ironic介绍与原理 零,配置文件 0.1 配置驱动 文件ironic.conf, ipmi硬件类型,默认值也是ipmi, pxe_ipmitool驱动也是默认值,配置驱动 [DEF ...
- Ironic的安装那些事儿
本文介绍如果使用devstack搭建Ironic环境,以及在安装的过程中可能遇到的问题. 环境准备 Ubuntu14.04虚拟机一台,建议选择高配的机器,因为会在上面创建三个虚拟机模拟bare met ...
- 【重识云原生】计算第2.6节——裸金属方案
<重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...
- OpenStack裸金属使用总结
1. 介绍 在openstack 中提供裸金属服务的项目是ironic, 它可以作为一个单独的服务使用,也可以与openstack 其他服务(例如:keystone, nova, neutron, g ...
- Buildroot ipa image
Buildroot ipa image 参考: https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buil ...
- tinyipa make
tinyipa make 参考:http://tinycorelinux.net/ Ironic Python Agent repo还提供了一组脚本,用于在imagebuild / tinyipa文件 ...
最新文章
- 算法——计算的灵魂(《算法》一本写了近40年的书)
- BCH开发团队BU为什么选择让矿工投票?
- java 柱状图下载_(JFreeChart)Java图表制作
- Linux学习 LVM ***
- nacos客户端获取配置
- mysql远程压力测试_mysql压力测试脚本实例
- code vs 1013 求先序排列
- 什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?
- 什么是持续集成(CI)/持续部署(CD)?
- 原创科幻短篇《Bug》
- 城市规划设计毕业论文范文
- 什么是信贷风险控制?
- linux ubuntu bionic,在Ubuntu 18.04 Bionic Beaver Linux上安装和设置KVM
- ArcGIS裁剪带有黑边的影像图两种方法
- java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据
- RedHat7.4安装
- nginx启动、停止、重启命令
- led手电筒烧灯珠_LED手电筒充电时候烧了怎么维修?
- 房贷放松:银行态度暧昧 地方暗中先行
- Connext DDS开发指南(5)基本QoS策略