Stefano Brivio (2): doc/demo: Drop /sbin from dhclient command, pass script file explicitly doc/demo: Clone and use mbuto in init namespace doc/demo.sh | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) -- 2.35.1
dhclient might be in /usr/sbin on recent versions of Fedora, and mbuto just adds it to the same location as it was on the host: just call dhclient instead of /sbin/dhclient. This also applies for dhclient-script: given that we create the file on boot, pass its explicit location with -sf. Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> --- doc/demo.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/demo.sh b/doc/demo.sh index d39a10e..f704ed4 100755 --- a/doc/demo.sh +++ b/doc/demo.sh @@ -63,11 +63,11 @@ EOF echo "$ ip link set dev eth0 up" ip link set dev eth0 up sleep 3 - echo "$ /sbin/dhclient -4 -1" - /sbin/dhclient -4 -1 + echo "$ dhclient -4 -1 -sf /sbin/dhclient-script" + dhclient -4 -1 -sf /sbin/dhclient-script sleep 2 - echo "$ /sbin/dhclient -6 -1" - /sbin/dhclient -6 -1 + echo "$ dhclient -6 -1 -sf /sbin/dhclient-script" + dhclient -6 -1 -sf /sbin/dhclient-script sleep 2 echo echo "$ ip address show" -- 2.35.1
On Sat, Sep 17, 2022 at 01:55:18AM +0200, Stefano Brivio wrote:dhclient might be in /usr/sbin on recent versions of Fedora, and mbuto just adds it to the same location as it was on the host: just call dhclient instead of /sbin/dhclient. This also applies for dhclient-script: given that we create the file on boot, pass its explicit location with -sf. Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>Hm, for the tests mbuto image I addressed this with symlinks instead. Not sure which is more elegant.--- doc/demo.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/demo.sh b/doc/demo.sh index d39a10e..f704ed4 100755 --- a/doc/demo.sh +++ b/doc/demo.sh @@ -63,11 +63,11 @@ EOF echo "$ ip link set dev eth0 up" ip link set dev eth0 up sleep 3 - echo "$ /sbin/dhclient -4 -1" - /sbin/dhclient -4 -1 + echo "$ dhclient -4 -1 -sf /sbin/dhclient-script" + dhclient -4 -1 -sf /sbin/dhclient-script sleep 2 - echo "$ /sbin/dhclient -6 -1" - /sbin/dhclient -6 -1 + echo "$ dhclient -6 -1 -sf /sbin/dhclient-script" + dhclient -6 -1 -sf /sbin/dhclient-script sleep 2 echo echo "$ ip address show"-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
On Sat, 17 Sep 2022 13:23:55 +1000 David Gibson <david(a)gibson.dropbear.id.au> wrote:On Sat, Sep 17, 2022 at 01:55:18AM +0200, Stefano Brivio wrote:Yes, I noticed... I think the symlinks are actually more elegant, but this is meant for interactive usage, and that has some potential to confuse the user. -- Stefanodhclient might be in /usr/sbin on recent versions of Fedora, and mbuto just adds it to the same location as it was on the host: just call dhclient instead of /sbin/dhclient. This also applies for dhclient-script: given that we create the file on boot, pass its explicit location with -sf. Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>Hm, for the tests mbuto image I addressed this with symlinks instead. Not sure which is more elegant.
On Sat, Sep 17, 2022 at 10:44:31AM +0200, Stefano Brivio wrote:On Sat, 17 Sep 2022 13:23:55 +1000 David Gibson <david(a)gibson.dropbear.id.au> wrote:Fair enough. I don't think I've ever tried to do anything with demo.sh -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibsonOn Sat, Sep 17, 2022 at 01:55:18AM +0200, Stefano Brivio wrote:Yes, I noticed... I think the symlinks are actually more elegant, but this is meant for interactive usage, and that has some potential to confuse the user.dhclient might be in /usr/sbin on recent versions of Fedora, and mbuto just adds it to the same location as it was on the host: just call dhclient instead of /sbin/dhclient. This also applies for dhclient-script: given that we create the file on boot, pass its explicit location with -sf. Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>Hm, for the tests mbuto image I addressed this with symlinks instead. Not sure which is more elegant.
...and not in pasta's namespace: the fakeroot(1) version shipping with (at least) Fedora 36 assumes "nested" operation as it sees that the UID is 0, and claims it's not supported. Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> --- doc/demo.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/doc/demo.sh b/doc/demo.sh index f704ed4..ed71ffb 100755 --- a/doc/demo.sh +++ b/doc/demo.sh @@ -128,6 +128,19 @@ start_pasta_delayed() { exit 0 } +# start_mbuto_delayed() - Run mbuto once, and if, $DEMO_DIR/mbuto.wait is gone +start_mbuto_delayed() { + trap '' EXIT + while [ -d "${DEMO_DIR}/mbuto.wait" ]; do sleep 1; done + cmd git -C "${DEMO_DIR}" clone git://mbuto.sh/mbuto + echo + cmd "${DEMO_DIR}/mbuto/mbuto" \ + -p "$(realpath "${0}")" -f "${DEMO_DIR}/demo.img" + + mkdir "${DEMO_DIR}/mbuto.done" + exit 0 +} + # into_ns() - Entry point and demo script to run inside new namespace into_ns() { echo "We're in the new namespace now." @@ -204,11 +217,8 @@ into_ns() { exit 0 fi - cmd git -C "${DEMO_DIR}" clone git://mbuto.sh/mbuto - echo - cmd "${DEMO_DIR}/mbuto/mbuto" \ - -p "$(realpath "${0}")" -f "${DEMO_DIR}/demo.img" - echo + rmdir "${DEMO_DIR}/mbuto.wait" + while [ ! -d "${DEMO_DIR}/mbuto.done" ]; do sleep 1; done echo "The guest image is ready. The next step will start the guest." echo "Use ^C to terminate it." next @@ -229,6 +239,7 @@ trap cleanup EXIT INT DEMO_DIR="$(mktemp -d)" mkdir "${DEMO_DIR}/pasta.wait" +mkdir "${DEMO_DIR}/mbuto.wait" echo "This script sets up a network and user namespace using pasta(1), then" echo "starts a virtual machine in it, connected via passt(1), pausing at every" @@ -242,6 +253,7 @@ echo "of this script from there." next start_pasta_delayed & +start_mbuto_delayed & DEMO_DIR="${DEMO_DIR}" cmd unshare -rUn "${0}" into_ns exit 0 -- 2.35.1