参考:

http://blog.csdn.net/wanghuiict/article/details/52757359

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 passwd

Password:
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

ironic images的更多相关文章

  1. Ironic几种不同的场景下的网络拓扑

    最近帮领导做了几页ppt,总结几种场景下ironic管理物理机网络的网络拓扑,简单做成一份文章记录下.只是方便自己记忆,没有认真修改.如果对ironic有一定了解,可以看下,加深理解. 1. vlan ...

  2. OpenStack Ironic 常见问题

    whole disk和partition 镜像 whole disk镜像部署可以支持windows,但是不能自定义分区(可以通过cloud-init实现),分区表是做镜像的人确定好的,partitio ...

  3. Enable multi-tenancy on ironic

    Multi-tenancy 是openstack ironic从Ocata版本开始支持的新特性,通过network-generic-switch插件控制交换机,Ironic可以实现在不同租户间机网络隔 ...

  4. Ironic中pxe driver和agent driver的区别

    历史问题: 以pxe_ipmitool 和agent_ipmitool为例,看起来似乎前者不使用ironic-python-agent,后者使用,但是实际上两者都使用ironic-python-age ...

  5. ironic驱动-IMPITool

    概述 IMPITool驱动是通过ipmitool工具来管理部署节点的,目前主要有两个驱动: agent_ipmitool pxe_ipmitool 配置驱动 要修改ironic支持的驱动需要修改配置文 ...

  6. Ironic 安装和配置详解

    转自:http://amar266.blogspot.com/2014/12/ironic-installation-and-configuration.html 1.Install Openstac ...

  7. Ironic , Openstack Baremetal Hypervisor

    Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...

  8. 理解裸机部署过程ironic

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

  9. 安装与配置ironic

    安装及配置 由于Ironic的配置很长,下面我们简短的说一下安装和配置过程,具体的安装配置教程参考官方手动配置教程或者使用devstack安装. Ironic需要与Nova.Neutron.Glanc ...

  10. 剖析ironic

    关键技术 在安装操作系统时需要存储介质来存储系统镜像.需要控制物理机开关机,在网络部署环境中还需要预启动环境. PXE (预启动环境) IPMI(电源管理) iSCSI(存储) 什么是PXE PXE( ...

随机推荐

  1. Poj(1125),Floyd,

    题目链接:http://poj.org/problem?id=1125 多源点最短路中的,最长路的,最短路. 看到这里就懵逼了,解释一下,找到一个源点,使得路最短,(遍历源点),路最短怎么求呢? 就是 ...

  2. vuejs中v-if的深层用法v-else,v-else-if,key

    <div id='root'> <div v-if='show'>helle world</div> <button @click='handleClick' ...

  3. php5.3 yum安装升级版本到 php5.6

    centOS系统下如何将php升级到5.6,之前通过yum来安装lamp环境,直接升级的话,提示没有更新包,也就是说默认情况下php5.3.3是最新   1.查看已经安装的php版本号 键入下面代码: ...

  4. c#winform初学习

    不用思维导图了直接拍照笔记吧..参考视频:传智播客.net第十四天,参考图书c#图解教程第四版(人民邮电出版社) 对对象初始化赋值 工具箱中的每一个控件都相当于一个类 在窗体中拖一个控件就相当于new ...

  5. R 多线程和多节点并行计算

    一:R本身是单线程的,如何让其多线程跑起来,提高运算速度? 用Parallel和foreach包玩转并行计算 看完上面这篇文章就会了.说白了,要加载parallel包,再改写一下自己的代码就ok了. ...

  6. 【洛谷P1379】八数码难题(广搜、A*)

    八数码难题 题目描述 一.广搜: 首先要考虑用什么存每一个状态 显然每个状态都用一个矩阵存是很麻烦的. 我们可以考虑将一个3*3的矩阵用一个字符串或long long 存. 每次扩展时再转化为矩阵. ...

  7. Javascript Ajax 请求

    var XMLHttpReq; function createXMLHttpRequest() { try { XMLHttpReq = new ActiveXObject("Msxml2. ...

  8. python的模块

    前言 在开发过程中,为了编写可维护的代码,我们会将很多函数进行分组,放到不同的文件中去.这样每个包的代码相对来说就会减少,也利于后期的维护和重复的使用.很多编程语言都采用这样的组织代码方式,在pyth ...

  9. 洛谷P1968 美元汇率

    题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值. 输入输出格式 ...

  10. Struts2基础学习2

    Struts2基础学习2 项目结构,测试页面与实体类 <%@ page language="java" contentType="text/html; charse ...