zoukankan      html  css  js  c++  java
  • disk image builder support x86 unbuntu 18.04

    https://cloud-images.ubuntu.com/bionic/current/

    (dib-env) [root@bogon dib-env]# DIB_RELEASE=bionic disk-image-create vm ubuntu baremetal dhcp-all-interfaces devuser -o ubuntu cloud-init-datasources cloud-init disable-selinux -a x86_64
    2020-07-14 06:51:42.812 | Could not open /root/.cache/image-create/bionic-server-cloudimg-x86_64.squashfs, because No such file or directory
    2020-07-14 06:51:43.533 | INFO diskimage_builder.block_device.blockdevice [-] State already cleaned - no way to do anything here
    (dib-env) [root@bogon dib-env]# 
    export ELEMENTS_PATH=./builder/ironic-python-agent-builder/dib/
    export DIB_DEV_USER_USERNAME=devuser
    export DIB_DEV_USER_PASSWORD=cloud_123.
    export DIB_DEV_USER_PWDLESS_SUDO=YES
    export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive, OpenStack,Ec2"
    #disk-image-create vm centos7 baremetal dhcp-all-interfaces devuser -o centos7 cloud-init-datasources cloud-init disable-selinux -a x86_64

     

     DIB_RELEASE=bionic disk-image-create vm ubuntu baremetal dhcp-all-interfaces devuser -o ubuntu cloud-init-datasources cloud-init disable-selinux -a amd64
    (dib-env) root@zj-x86:/data# find ./ -name ironic-python-agent-builder
    ./dib-env/bin/ironic-python-agent-builder
    ./dib-env/share/ironic-python-agent-builder
    (dib-env) root@zj-x86:/data# ls ./dib-env/bin/ironic-python-agent-builder
    ./dib-env/bin/ironic-python-agent-builder
    (dib-env) root@zj-x86:/data# ls ./dib-env/share/ironic-python-agent-builder/dib/
    ironic-python-agent-ramdisk
    (dib-env) root@zj-x86:/data# 
    (dib-env) root@zj-x86:/data# ls ./dib-env/share/ironic-python-agent-builder/dib/ironic-python-agent-ramdisk/
    cleanup.d         environment.d  package-installs.yaml  README.rst                             static
    element-deps      extra-data.d   pkg-map                source-repository-ironic-python-agent  svc-map
    element-provides  install.d      post-install.d         source-repository-requirements         test-elements
    (dib-env) root@zj-x86:/data# 
    2020-07-14 08:09:17.395 | + source /tmp/in_target.d/post-install.d/../environment.d/99-dib-init-system
    2020-07-14 08:09:17.395 | ++ '[' -z systemd ']'
    2020-07-14 08:09:17.396 | ++ case $DIB_INIT_SYSTEM in
    2020-07-14 08:09:17.396 | dib-run-parts Running /tmp/in_target.d/post-install.d/00-package-installs
    2020-07-14 08:09:17.451 | Nothing to install
    2020-07-14 08:09:17.458 | dib-run-parts 00-package-installs completed
    2020-07-14 08:09:17.458 | dib-run-parts Running /tmp/in_target.d/post-install.d/10-enable-init-scripts
    2020-07-14 08:09:17.464 | dib-run-parts 10-enable-init-scripts completed
    2020-07-14 08:09:17.464 | dib-run-parts Running /tmp/in_target.d/post-install.d/15-disable-selinux
    2020-07-14 08:09:17.482 | Unmount /tmp/dib_build.XEGeNBqK/mnt/var/cache/apt/archives
    2020-07-14 08:09:17.494 | Unmount /tmp/dib_build.XEGeNBqK/mnt/tmp/in_target.d
    2020-07-14 08:09:17.504 | Unmount /tmp/dib_build.XEGeNBqK/mnt/sys
    2020-07-14 08:09:17.511 | Unmount /tmp/dib_build.XEGeNBqK/mnt/proc
    2020-07-14 08:09:17.520 | Unmount /tmp/dib_build.XEGeNBqK/mnt/dev/pts
    2020-07-14 08:09:17.530 | Unmount /tmp/dib_build.XEGeNBqK/mnt/dev
    2020-07-14 08:09:17.784 | INFO diskimage_builder.block_device.blockdevice [-] State already cleaned - no way to do anything here

    原理是这条命令有问题:

     DIB_RELEASE=bionic disk-image-create vm ubuntu baremetal dhcp-all-interfaces devuser -o ubuntu cloud-init-datasources cloud-init disable-selinux -a amd64

    打开日志

    env DIB_RELEASE=bionic DIB_DEBUG_TRACE=1 disk-image-create vm ubuntu baremetal dhcp-all-interfaces devuser -o ubuntu cloud-init-datasources cloud-init disable-selinux block-device-mbr  -a amd64

    发现

    + config=/etc/selinux/config
    2020-07-14 08:26:29.185 | + '[' -e /etc/selinux/config ']'
    2020-07-14 08:26:29.192 | ++ diskimage_builder/lib/img-functions:run_in_target:60                             :   check_break after-error run_in_target bash

    不能去disable-selinux

    env DIB_RELEASE=bionic DIB_DEBUG_TRACE=1 disk-image-create vm ubuntu baremetal dhcp-all-interfaces devuser -o ubuntu cloud-init-datasources cloud-init   -a amd64 

    The actual setup
    What diskimage-builder actually does is take elements and run them. Each elements consists of a set of phases where the element takes actions. All you are really doing is defining the elements and they will insert themselves where needed. It also uses environment variables for tunables, or for other various small tweaks.
    
    This is how I build the images at http://distfiles.gentoo.org/experimental/amd64/openstack/
    
    export GENTOO_PORTAGE_CLEANUP=True
    export DIB_INSTALLTYPE_pip_and_virtualenv=package
    export DIB_INSTALLTYPE_simple_init=repo
    export GENTOO_PYTHON_TARGETS="python3_6"
    export GENTOO_PYTHON_ACTIVE_VERSION="python3.6"
    export ELEMENTS="gentoo simple-init growroot vm openssh-server block-device-mbr"
    export COMMAND="disk-image-create -a amd64 -t qcow2 --image-size 3"
    export DATE="$(date -u +%Y%m%d)"
    
    GENTOO_PROFILE=default/linux/amd64/17.0/no-multilib/hardened ${COMMAND} -o "gentoo-openstack-amd64-hardened-nomultilib-${DATE}" ${ELEMENTS}
    GENTOO_PROFILE=default/linux/amd64/17.0/no-multilib ${COMMAND} -o "gentoo-openstack-amd64-default-nomultilib-${DATE}" ${ELEMENTS}
    GENTOO_PROFILE=default/linux/amd64/17.0/hardened ${COMMAND} -o "gentoo-openstack-amd64-hardened-${DATE}" ${ELEMENTS}
    GENTOO_PROFILE=default/linux/amd64/17.0/systemd ${COMMAND} -o "gentoo-openstack-amd64-systemd-${DATE}" ${ELEMENTS}
    ${COMMAND} -o "gentoo-openstack-amd64-default-${DATE}" ${ELEMENTS}
    For musl I've had to do some custom work as I have to build the stage4s locally, but it's largely the same (with the additional need to define a musl overlay.
    
    cd ~/diskimage-builder
    cp ~/10-gentoo-image.musl diskimage_builder/elements/gentoo/root.d/10-gentoo-image
    pip install -U .
    cd ~/
    
    export GENTOO_PORTAGE_CLEANUP=False
    export DIB_INSTALLTYPE_pip_and_virtualenv=package
    export DIB_INSTALLTYPE_simple_init=repo
    export GENTOO_PYTHON_TARGETS="python3_6"
    export GENTOO_PYTHON_ACTIVE_VERSION="python3.6"
    DATE="$(date +%Y%m%d)"
    export GENTOO_OVERLAYS="musl"
    export GENTOO_PROFILE=default/linux/amd64/17.0/musl/hardened
    
    disk-image-create -a amd64 -t qcow2 --image-size 3 -o gentoo-openstack-amd64-hardened-musl-"${DATE}" gentoo simple-init growroot vm
    
    cd ~/diskimage-builder
    git checkout diskimage_builder/elements/gentoo/root.d/10-gentoo-image
    pip install -U .
    cd ~/
  • 相关阅读:
    JSON 基础完结 yz
    HTML5 基础教程一 yz
    HTML5 基础教程二 yz
    ADO.NET 之 一 yz
    [ lucene高级 ] Lucene docid,UID mapping and Payload [转]
    [ mongoDB ] Wordnik的MongoDB使用经验 [转]
    [ mongoDB ] MongoDB 客户端推荐
    [ mongoDB ] mongoDB replSet 添加节点注意事项
    Trie树实现[ java ]
    [ mongoDB ] MongoDB 连接池
  • 原文地址:https://www.cnblogs.com/dream397/p/13298986.html
Copyright © 2011-2022 走看看