概述:

纸上得来终觉浅,绝知此事要躬行

Ironic作为Openstack中的一个模块,和Openstack其他模块相互配合工作,用来操作和管理裸机。

虽然官方提供了较全的文档,对我来说,不自己实操一遍终究觉得很多细节无法把握。

如果把Ironic放到庞大的系统去理解,毕竟繁琐,不适合初学者;所幸的是Ironic本身是一个相对独立的模块,有模块自己的操作命令。

如果使用相关命令操作一遍,结合文档理解,清晰了然。

Ironic原理:

根据上图Ironic主要功能:

  • 接收外部模块命令
  • 控制裸机启停
  • 控制裸机下载各阶段镜像

Ironic状态机:

ironic的状态机是有限状态机,不是各状态之间可以随意跳转,而是有严格的关系;理解状态机变迁对Ironic原理, 和操作有很大帮助。对几个重要状态简单说明:

enroll: 裸机刚注册时的状态;

managable:裸机注册后需要检查裸机IPMI带外管理工具(控制启停等操作)是否可用,检查过程叫verifying。IPMI可用,进入manageble状态;

inspecting:managable下一步可以是inspecting;inspecting不是必须要做;inspecting裸机会下载ironic的镜像,简称IPA,进行信息收集,称为收集带内信息;收集完又会回到managable;

available:裸机已进入资源池,随时可分配;managable的裸机要通过cleaning状态,清空裸机上硬盘等资源(provide命令出发cleaning);清空后机器将进入available状态。

active:裸机已部署好客户镜像,可供客户使用;available状态的主机要通过deploying(部署),安装上客户的镜像后,进入active状态;

操作:

  • 首先是注册裸机信息:
baremetal node create --driver ipmi \--driver-info deploy_kernel=http://http_ip:http_port/images/ironic-python-agent.kernel \--driver-info deploy_ramdisk=http://http_ip:http_port/images/ironic-python-agent.initramfs \--driver-info ipmi_address=ipmi_ip \--driver-info ipmi_username=ipmi_username \--driver-info ipmi_password=ipmi_password \--property  boot_mode=bios \--deploy-interface ramdisk \--boot-interface ipxe \--name node_0

http_ip和http_port:提供镜像下载服务的IP和端口

ironic-python-agent.key/initramfs:是Irnoic自带的官方镜像,配合完成clean(清理),inspect(带内采集)等工作

ipmi_ip/ipmi_username/ipmi_password:裸机上设置的ipmi信息

以上命令成功后会返回一条node的UUID信息,UUID要在后续反复使用。

也可以通过以下命令查看node的UUID信息:

baremetal node list

录入信息后,裸机处于enroll状态

  • 创建裸机端口:
baremetal port create --node  node_uuid node_mac_address

node_uuid:创建node时生成的uuid

node_mac_address:裸机的网卡mac地址;如果裸机上有多个网卡,就输入和Ironic Pxe服务相连的网卡;(Pxe简单说用于下载镜像,可以参考我的相关文章)

  • 进入managable状态:

managable顾名思义是可管理的意思,触发Ironic对裸机IPMI(带外管理,操作重启)功能进行检查,检查通过,进入managable状态;

baremetal node manage node_uuid

查询执行结果

状态verifying正在对ipm功能进行检查

managable表示检查完毕

如果状态无法变迁,多半是IPMI不通,可以用ipmi命令自行检查:

ipmitool -I lanplus -H ipmi_ip -U user -P password power status

  • 清理裸机

Ironic状态机章节也提过,裸机在注册后,在提供给客户使用之前,都要做好清理工作,放入资源池;也就是触发裸机的清理工作,进入available状态

baremetal node provide node_uuid

等待裸机下载镜像并清理完成,清理完成后将进入available状态

  • 部署裸机

当裸机需要部署镜像开始使用时:

先指定裸机要使用的镜像信息,我以ramdisk为例:

baremetal node set node_uuid \
--instance-info kernel=http://http_ip:http_port/your.vmlinuz \
--instance-info ramdisk=http://http_ip:http_port/your.initrd \
--instance-info image_source=http://http_ip:http_port/your.initrd 

ramdisk和image_source:信息相同,这是Ironic版本要求导致

your.vmlinuz  your.initrd:分别对应你的内核和内存文件系统,如何获取和制作,参考我的文章《PXE实现ubuntu内存文件系统》

触发部署:

baremetal node deploy node_uuid

通知Ironic开始部署相应裸机;查询等待部署完成;完成后裸机将进入active状态;

  • 回收裸机:
baremetal node undeploy node_uuid

这个过程裸机也会经历清理,最后到available状态

  • 删除裸机:

把裸机从Ironic管理中删除,只有当裸机处于available或managable状态时才可以操作

baremetal node delete node_uuid

如果需要收集裸机的带内信息可以用node inspect命令;本文示范了一个主要的操作流程;想要进一步了解的同学可以查看官方文档自行操作;

https://docs.openstack.org/ironic/latest/user/states.html

Openstack Ironic Bare metal 实操相关推荐

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

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

  2. OpenStack Ironic 裸金属的配置及使用

    环境 当前OpenStack版本为 Rocky 操作系统为 CentOS 7.6 api节点即控制节点 conductor节点即裸金属计算节点 控制节点 node1.node2.node3 计算节点 ...

  3. OpenStack Ironic实现裸机部署

    实习将近一个月了,期间不断努力,终于算是把OpenStack Ironic项目实现裸机部署的过程理解了一遍,并在小规模集群上成功实践.整理一些这段时间工作的内容,就算是一个阶段性的小项目总结了. Ir ...

  4. openstack ironic standalone 方式部署

    基本原理 http://docs.openstack.org/developer/ironic/#introduction Ironic 原来属于nova项目,叫做Nova "bare me ...

  5. UnrealEngine5实操--基础概念(持续补充)

    UnrealEngine5实操--基础概念 Unreal 术语 UE5 上手指南 关卡快速搭建 视口标准按键操作 Editor 视角移动速度调节 Unreal Editor 快速测距 Actor 操作 ...

  6. 理论+实操:docker入门初体验,申请阿里镜像加速器

    文章目录 一:Docker概述 1.1 docker概念: 1.2 docker设计的目标: 1.3 docker的组成: 1.4 docker的使用场景 1.5 docker版本: 二: docke ...

  7. 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!

    论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...

  8. 华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...

    自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新.市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争 ...

  9. 完整代码+实操!手把手教你操作Faster R-CNN和Mask R-CNN

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 机器视觉领域的核心问题之一就是目标检测(Object Detection),它的任务是找出图像当中所有感 ...

最新文章

  1. 不会编程也能做这么酷炫的视频风格迁移?这个工具冲上Reddit热榜,还能在线试玩...
  2. Postman Could not get any response
  3. linux blind函数,Linux网络编程入门
  4. c++ linux 线程等待与唤醒_C++并发编程 等待与唤醒
  5. 解析Redis操作五大数据类型常用命令
  6. 用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化
  7. swag您的装置不支持_新品发布---微机保护装置
  8. sql加载配置文件时出错:_SQL复制:基本设置和配置
  9. Initializer Lists
  10. linux 索引,Linux学习笔记-索引类命令
  11. 数据类型选方法【SPSS 073期】
  12. python数据库模糊查询_python中的mysql数据库like模糊查询
  13. java毕业答辩ppt_java网上商城系统毕业设计答辩.ppt
  14. 这些好用的音频、视频素材网站,你值得拥有。
  15. VMware16安装MacOS Big Sur系统
  16. Cousera - Deep Learning - 课程笔记 - Week 6
  17. 联想小新Air15-2021安装elementaryOS5.1(基于ubuntu18.04)
  18. 【设计模式】装饰者与继承装饰者与代理间的小九九
  19. 逻辑左移、逻辑右移、算术左移、算术右移、循环左移、循环右移
  20. 弘辽科技:拼多多想自立门户,正式上线多多钱包

热门文章

  1. HTML链接打开腾讯QQ聊天窗口,超链接打开qq对话框
  2. 啊啊啊啊啊啊啊啊啊啊啊啊啊啊(一篇自述)
  3. foxmail不能添加google账户
  4. 关闭搜狐微门户弹窗终极方法
  5. 阿里巴巴按关键字搜索新品数据 API
  6. java学习p163
  7. 机器学习—特征工程—OneHotEncoder独热编码
  8. 哨兵二号数据下载(欧空局)
  9. 轻轻松松做演讲的小窍门
  10. JAVA8 Stream的系列操作,Optional使用---- java养成