zoukankan      html  css  js  c++  java
  • ironic images

    参考:

    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=""
    View Code

    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 "
    " " "
     
    # 将如上命令获得的ko列表拷贝到 /etc/dracut.conf 中
    add_drivers+=""
     
    rm -rf /boot/*kdump.img
    dracut --force
    View Code

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

    准备镜像文件
    如果已经准备好了镜像文件,这一步可以跳过。
     
    首先,下载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
    View Code
  • 相关阅读:
    窗内的星星
    亚特兰蒂斯
    你能回答这些问题吗
    区间最大公约数
    集训队8月14日(树状数组)
    一个简单的整数问题2
    谜一样的牛
    楼兰图腾
    Eternal Victory
    集训队8月12日(并查集)
  • 原文地址:https://www.cnblogs.com/gushiren/p/9512819.html
Copyright © 2011-2022 走看看