Ironic镜像说明

2024-08-25 04:58
文章标签 镜像 说明 ironic

本文主要是介绍Ironic镜像说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

Deploy 映像

coreos 映像

dib 映像

User 映像

镜像驱动问题


 

ironic 整个部署流程中有两组映像,分别是 deploy 映像和 user 映像, 其中 deploy 映像用在 inspector 和 部署阶段, user 映像是用户需要安装的操作系统映像。

 

Deploy 映像

制作ironic deploy镜像其实就是在普通镜像中添加一个ipa服务,用来裸机和ironic通信。 官方推荐制作镜像的工具有两个,分别是CoreOS tools和disk-image-builder 具体链接如下: https://docs.openstack.org/project-install-guide/baremetal/ocata/deploy-ramdisk.html

 

coreos 映像

coreos 是一个 docker 镜像, 你可以自己构建,也可以直接下载社区 构建好的: http://tarballs.openstack.org/ironic-python-agent/coreos/files/

 

dib 映像

映像密码

有时候,部署会卡很长时间,我们希望能登录到裸机,查看原因。 这个时候需要有密码可以或者是 ssh 能免密码登录。

对应 dib 添加密码,是通过 dynamic-login element 来完成的。 首先制作带 dynamic-login 的映像:

 disk-image-create ironic-agent centos7 dynamic-login -o ironic-deploy

dynamic-login 的原理是在系统里起一个 dynamic-login 服务,在系统 上电时,解析 /proc/cmdline 里的参数,如果用户传了 rootpwd 或者 sshkey, 则写到对应的文件中,这样用户就可以登录系统了。

dynamic-login 使用的是密文,我们可以使用 openssl 生产密码:

 

$ openssl passwdPassword:
Verifying - Password:
mNw2hVHmny2Ho然后我们把在 /etc/ironic/ironic.conf 添加我们的密码。
$ cat /etc/ironic/ironic.conf[pxe]
pxe_append_params = rootpwd="mNw2hVHmny2Ho"如果使用 ssh 方式登录,则添加 sshkey
$ cat ~/.ssh/id_rsa.pub# 添加 sshkey="<your_sshkey>"
$ cat /etc/ironic/ironic.conf[pxe]
pxe_append_params = sshkey=""

 

User 映像

user 映像又分为 partition 映像和 whole disk 映像,两者的区别是 whole disk 映像包含分区表和 boot。目前 partition 映像已经很少 使用了,现在基本都使用 whole disk 映像。

 

镜像驱动问题

我们使用虚机制作的镜像安装在物理机上,很可能缺少驱动,而导致用户 系统起不来。这里我们以 CentOS 为例,说明如何重新制作驱动。

 

mount -o loop CentOS.iso /mnt
cd /mnt/isolinux
lsinitrd initrd.img | grep "\.ko" | awk -F / '{print $NF}' | tr "\n" " "# 将如上命令获得的ko列表拷贝到 /etc/dracut.conf 中
add_drivers+=""rm -rf /boot/*kdump.img
dracut --force

 

也可以用网上做好的镜像:

 

准备镜像文件
如果已经准备好了镜像文件,这一步可以跳过。首先,下载ironic deploy镜像
# cd /tftpboot/
# mkdir -p ironic
# cd ironic/
# wget http://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz
# wget http://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz第二,准备user image,用户镜像。
安装diskimage-build
# git clone  https://github.com/openstack/dib-utils.git
# cd dib-utils/
# python setup.py install
# git clone git://git.openstack.org/openstack/diskimage-builder
# cd diskimage-builder/
# python setup.py install下载 fedora镜像
# disk-image-create fedora baremetal dhcp-all-interfaces grub2 -o my-fedora修改镜像的默认密码
# yum install libguestfs-tools-c
# cp my-fedora.qcow2 /tmp/
# chmod 777 /tmp/my-fedora.qcow2
# virt-sysprep -a /tmp/my-fedora.qcow2  --root-password password:111111
# mv my-fedora.initrd my-fedora.vmlinuz my-fedora.qcow2 /tftpboot/ironic/
# mv /tmp/my-fedora.qcow2 /tftpboot/ironic/将 /tftpboot 修改为ironic拥有。
# chown -R ironic:ironic /tftpboot
# chmod 664 /tftpboot/ironic/*最后,需要的镜像文件有五个:两个deploy镜像文件,三个user镜像文件。
# ll /tftpboot/ironic/
总用量 829436
-rw-rw-r-- 2 ironic ironic 347257429  coreos_production_pxe_image-oem.cpio.gz
-rw-rw-r-- 2 ironic ironic  33837088  coreos_production_pxe.vmlinuz
-rw-rw-r-- 2 ironic ironic  17685716  my-fedora.initrd
-rw-rw-r-- 2 ironic ironic   6679512  my-fedora.vmlinuz
-rw-rw-r-- 1 ironic ironic 443875328  my-fedora.qcow2

 

参考:https://www.cnblogs.com/gushiren/p/9512819.html

这篇关于Ironic镜像说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104603

相关文章

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以