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进行交互

  1. 启动时agent给Conductor的vendor_passthru lookup endpoint(地址为/v1/drivers/{driver}/vendor_passthru/lookup)发送一个硬件的profile
  2. 然后Ironic就可以得出该节点的uuid,在成功发现该节点之后,agent隔N秒发送心跳包给Conductor(hearteat地址为/v1/nodes/{node_ident}/vendor_passthru/heartbeat )
  3. 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异常。

posted on 2018-08-21 17:39 gushiren 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/gushiren/p/9512809.html

Ironic-Python-Agent相关推荐

  1. 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践

    背景 目前,所有号称性能损耗小的VM技术,实际上都会有5-15%甚至更高的损耗.作为替代方案,如Gartner在2015年发布的报告"Market Trends: The Rise of B ...

  2. dnsmasq mysql_OpenStack Ironic之inspect自检

    作为一个基于python的代理,它可用于处理ironic中裸机节点的一系列动作,比如检查.配置.清除和部署镜像,暴露API给ironic-conductor,IPA使用lookup和hearteat机 ...

  3. 理解裸机部署过程ironic

    部署物理机跟部署虚拟机的概念在nova来看是一样,都是nova通过创建虚拟机的方式来触发,只是底层nova-scheduler和nova-compute的驱动不一样.虚拟机的底层驱动采用的libvir ...

  4. 【ironic】ironic介绍与原理

    [ironic]ironic介绍与原理 零,配置文件 0.1 配置驱动 文件ironic.conf, ipmi硬件类型,默认值也是ipmi, pxe_ipmitool驱动也是默认值,配置驱动 [DEF ...

  5. Ironic的安装那些事儿

    本文介绍如果使用devstack搭建Ironic环境,以及在安装的过程中可能遇到的问题. 环境准备 Ubuntu14.04虚拟机一台,建议选择高配的机器,因为会在上面创建三个虚拟机模拟bare met ...

  6. 【重识云原生】计算第2.6节——裸金属方案

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  7. OpenStack裸金属使用总结

    1. 介绍 在openstack 中提供裸金属服务的项目是ironic, 它可以作为一个单独的服务使用,也可以与openstack 其他服务(例如:keystone, nova, neutron, g ...

  8. Buildroot ipa image

    Buildroot ipa image 参考: https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buil ...

  9. tinyipa make

    tinyipa make 参考:http://tinycorelinux.net/ Ironic Python Agent repo还提供了一组脚本,用于在imagebuild / tinyipa文件 ...

最新文章

  1. 算法——计算的灵魂(《算法》一本写了近40年的书)
  2. BCH开发团队BU为什么选择让矿工投票?
  3. java 柱状图下载_(JFreeChart)Java图表制作
  4. Linux学习 LVM ***
  5. nacos客户端获取配置
  6. mysql远程压力测试_mysql压力测试脚本实例
  7. code vs 1013 求先序排列
  8. 什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?
  9. 什么是持续集成(CI)/持续部署(CD)?
  10. 原创科幻短篇《Bug》
  11. 城市规划设计毕业论文范文
  12. 什么是信贷风险控制?
  13. linux ubuntu bionic,在Ubuntu 18.04 Bionic Beaver Linux上安装和设置KVM
  14. ArcGIS裁剪带有黑边的影像图两种方法
  15. java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据
  16. RedHat7.4安装
  17. nginx启动、停止、重启命令
  18. led手电筒烧灯珠_LED手电筒充电时候烧了怎么维修?
  19. 房贷放松:银行态度暧昧 地方暗中先行
  20. Connext DDS开发指南(5)基本QoS策略

热门文章

  1. js判断浏览器是否为IE
  2. JAVA设计模式之——抽象工厂模式
  3. java微秒精度怎么弄,java时间精确到微秒
  4. 【SSL】1758连通图
  5. 开源项目学习:cJSON库的学习和使用(上)---以天气JSON数据为例
  6. 【STM32H7教程】第87章 STM32H7的SDMMC总线基础知识和HAL库API
  7. c语言和python区别,python和c语言的区别是什么
  8. 程序员必知的编程4大祖师爷,C语言之父堪称编程界的牛顿!
  9. 程序中日期、时长等时间相关英文命名问题汇总
  10. OSChina 周五乱弹 ——这年头吃屎都不安全了