Re: [Openstack] diskimage-builder: prepare ubuntu 17.x images

2018-02-09 Thread Volodymyr Litovka

Hi Tony,

this patch works for me:

--- 
diskimage-builder/diskimage_builder/elements/ubuntu/root.d/10-cache-ubuntu-tarball.orig 
2018-02-09 12:20:02.117793234 +
+++ 
diskimage-builder/diskimage_builder/elements/ubuntu/root.d/10-cache-ubuntu-tarball 
2018-02-09 13:25:48.654868263 +

@@ -14,7 +14,9 @@

 DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-http://cloud-images.ubuntu.com}
 DIB_RELEASE=${DIB_RELEASE:-trusty}
-BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz}
+SUFFIX="-root"
+[[ $DIB_RELEASE =~ (artful|bionic) ]] && SUFFIX=""
+BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-$DIB_RELEASE-server-cloudimg-${ARCH}${SUFFIX}.tar.gz}
 
SHA256SUMS=${SHA256SUMS:-https://${DIB_CLOUD_IMAGES##http?(s)://}/$DIB_RELEASE/current/SHA256SUMS}
 CACHED_FILE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
 CACHED_FILE_LOCK=$DIB_LOCKFILES/$BASE_IMAGE_FILE.lock
@@ -45,9 +47,25 @@
 fi
 popd
 fi
-    # Extract the base image (use --numeric-owner to avoid UID/GID 
mismatch between
-    # image tarball and host OS e.g. when building Ubuntu image on an 
openSUSE host)
-    sudo tar -C $TARGET_ROOT --numeric-owner -xzf 
$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE

+    if [ -n "$SUFFIX" ]; then
+  # Extract the base image (use --numeric-owner to avoid UID/GID 
mismatch between
+  # image tarball and host OS e.g. when building Ubuntu image on an 
openSUSE host)
+  sudo tar -C $TARGET_ROOT --numeric-owner -xzf 
$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE

+    else
+  # Unpack image to IDIR, mount it on MDIR, copy it to TARGET_ROOT
+  IDIR="/tmp/`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; 
echo ''`"
+  MDIR="/tmp/`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; 
echo ''`"

+  sudo mkdir $IDIR $MDIR
+  sudo tar -C $IDIR --numeric-owner -xzf 
$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
+  sudo mount -o loop -t auto 
$IDIR/$DIB_RELEASE-server-cloudimg-${ARCH}.img $MDIR

+  pushd $PWD 2>/dev/null
+  cd $MDIR
+  sudo tar c . | sudo tar x -C $TARGET_ROOT -k --numeric-owner 
2>/dev/null

+  popd
+  # Clean up
+  sudo umount $MDIR
+  sudo rm -rf $IDIR $MDIR
+    fi
 }

 (


On 2/9/18 1:03 PM, Volodymyr Litovka wrote:

Hi Tony,

On 2/9/18 6:01 AM, Tony Breeds wrote:

On Thu, Feb 08, 2018 at 10:53:14PM +0200, Volodymyr Litovka wrote:

Hi colleagues,

does anybody here know how to prepare Ubuntu Artful (17.10) image using
diskimage-builder?

diskimage-builder use the following naming style for download -
$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz

and while "-root" names are there for trusty/amd64 and xenial/amd64 distros,
these archives for artful (and bionic) are absent on
cloud-images.ubuntu.com. There are just different kinds of images, not
source tree as in -root archives.

I will appreciate any ideas or knowledge how to customize 17.10-based image
using diskimage-builder or in diskimage-builder-like fashion.

You might like to investigate the ubuntu-minimal DIB element which will
build your ubuntu image from apt rather than starting with the pre-built
image.

good idea, but with

export DIST="ubuntu-minimal"
export DIB_RELEASE=artful

diskimage-builder fails with the following debug:

2018-02-09 10:33:22.426 | dib-run-parts Sourcing environment file 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.427 | + source 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.427 |  dirname 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.428 | +++ 
PATH='$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tmp/in_target.d/pre-install.d/../environment.d/..'

2018-02-09 10:33:22.428 | +++ dib-init-system
2018-02-09 10:33:22.429 | + set -eu
2018-02-09 10:33:22.429 | + set -o pipefail
2018-02-09 10:33:22.429 | + '[' -f /usr/bin/systemctl -o -f 
/bin/systemctl ']'

2018-02-09 10:33:22.429 | + [[ -f /sbin/initctl ]]
2018-02-09 10:33:22.429 | + [[ -f /etc/gentoo-release ]]
2018-02-09 10:33:22.429 | + [[ -f /sbin/init ]]
2018-02-09 10:33:22.429 | + echo 'Unknown init system'
2018-02-09 10:36:54.852 | + exit 1
2018-02-09 10:36:54.853 | ++ DIB_INIT_SYSTEM='Unknown init system

while earlier it find systemd

2018-02-09 10:33:22.221 | dib-run-parts Sourcing environment file 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.223 | + source 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.223 |  dirname 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.224 | +++ 
PATH=/home/doka/DIB/dib/bin:/home/doka/DIB/dib/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/..

2018-02-09 10:33:22.224 | +++ dib-init-system
2018-02-09 10:33:22.225 | + set -eu
2018-02-09 10:33:22.225 | + set -o pipefail
2018-

Re: [Openstack] diskimage-builder: prepare ubuntu 17.x images

2018-02-09 Thread Volodymyr Litovka

Hi Tony,

On 2/9/18 6:01 AM, Tony Breeds wrote:

On Thu, Feb 08, 2018 at 10:53:14PM +0200, Volodymyr Litovka wrote:

Hi colleagues,

does anybody here know how to prepare Ubuntu Artful (17.10) image using
diskimage-builder?

diskimage-builder use the following naming style for download -
$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz

and while "-root" names are there for trusty/amd64 and xenial/amd64 distros,
these archives for artful (and bionic) are absent on
cloud-images.ubuntu.com. There are just different kinds of images, not
source tree as in -root archives.

I will appreciate any ideas or knowledge how to customize 17.10-based image
using diskimage-builder or in diskimage-builder-like fashion.

You might like to investigate the ubuntu-minimal DIB element which will
build your ubuntu image from apt rather than starting with the pre-built
image.

good idea, but with

export DIST="ubuntu-minimal"
export DIB_RELEASE=artful

diskimage-builder fails with the following debug:

2018-02-09 10:33:22.426 | dib-run-parts Sourcing environment file 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.427 | + source 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.427 |  dirname 
/tmp/in_target.d/pre-install.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.428 | +++ 
PATH='$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tmp/in_target.d/pre-install.d/../environment.d/..'

2018-02-09 10:33:22.428 | +++ dib-init-system
2018-02-09 10:33:22.429 | + set -eu
2018-02-09 10:33:22.429 | + set -o pipefail
2018-02-09 10:33:22.429 | + '[' -f /usr/bin/systemctl -o -f 
/bin/systemctl ']'

2018-02-09 10:33:22.429 | + [[ -f /sbin/initctl ]]
2018-02-09 10:33:22.429 | + [[ -f /etc/gentoo-release ]]
2018-02-09 10:33:22.429 | + [[ -f /sbin/init ]]
2018-02-09 10:33:22.429 | + echo 'Unknown init system'
2018-02-09 10:36:54.852 | + exit 1
2018-02-09 10:36:54.853 | ++ DIB_INIT_SYSTEM='Unknown init system

while earlier it find systemd

2018-02-09 10:33:22.221 | dib-run-parts Sourcing environment file 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.223 | + source 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.223 |  dirname 
/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/10-dib-init-system.bash
2018-02-09 10:33:22.224 | +++ 
PATH=/home/doka/DIB/dib/bin:/home/doka/DIB/dib/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/tmp/dib_build.fJUf6F4d/hooks/extra-data.d/../environment.d/..

2018-02-09 10:33:22.224 | +++ dib-init-system
2018-02-09 10:33:22.225 | + set -eu
2018-02-09 10:33:22.225 | + set -o pipefail
2018-02-09 10:33:22.225 | + '[' -f /usr/bin/systemctl -o -f 
/bin/systemctl ']'

2018-02-09 10:33:22.225 | + echo systemd
2018-02-09 10:33:22.226 | ++ DIB_INIT_SYSTEM=systemd
2018-02-09 10:33:22.226 | ++ export DIB_INIT_SYSTEM

it seems somewhere in the middle something happens to systemd package

In the meantime I'll look at how we can consume the .img file, which is
similar to what we'd need to do for Fedora
script 
diskimage-builder/diskimage_builder/elements/ubuntu/root.d/10-cache-ubuntu-tarball 
contains the function get_ubuntu_tarball() which, after all checks, does 
the following:


sudo tar -C $TARGET_ROOT --numeric-owner -xzf 
$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE


probably, the easiest hack around the issue is to change above to smth like

sudo (
mount -o loop  
tar cv   | tar xv -C $TARGET_ROOT ...
)

Will try this.

--
Volodymyr Litovka
  "Vision without Execution is Hallucination." -- Thomas Edison

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Re: [Openstack] diskimage-builder: prepare ubuntu 17.x images

2018-02-08 Thread Tony Breeds
On Thu, Feb 08, 2018 at 10:53:14PM +0200, Volodymyr Litovka wrote:
> Hi colleagues,
> 
> does anybody here know how to prepare Ubuntu Artful (17.10) image using
> diskimage-builder?
> 
> diskimage-builder use the following naming style for download -
> $DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz
> 
> and while "-root" names are there for trusty/amd64 and xenial/amd64 distros,
> these archives for artful (and bionic) are absent on
> cloud-images.ubuntu.com. There are just different kinds of images, not
> source tree as in -root archives.
> 
> I will appreciate any ideas or knowledge how to customize 17.10-based image
> using diskimage-builder or in diskimage-builder-like fashion.

You might like to investigate the ubuntu-minimal DIB element which will
build your ubuntu image from apt rather than starting with the pre-built
image.

In the meantime I'll look at how we can consume the .img file, which is
similar to what we'd need to do for Fedora

Yours Tony.


signature.asc
Description: PGP signature
___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


[Openstack] diskimage-builder: prepare ubuntu 17.x images

2018-02-08 Thread Volodymyr Litovka

Hi colleagues,

does anybody here know how to prepare Ubuntu Artful (17.10) image using 
diskimage-builder?


diskimage-builder use the following naming style for download - 
$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz


and while "-root" names are there for trusty/amd64 and xenial/amd64 
distros, these archives for artful (and bionic) are absent on 
cloud-images.ubuntu.com. There are just different kinds of images, not 
source tree as in -root archives.


I will appreciate any ideas or knowledge how to customize 17.10-based 
image using diskimage-builder or in diskimage-builder-like fashion.


Thanks!

--
Volodymyr Litovka
  "Vision without Execution is Hallucination." -- Thomas Edison

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack