Re: Ubuntu 18.04: netplan support

2018-10-19 Diskussionsfäden Robert Markula



Am 17.10.18 um 18:51 schrieb Thomas Lange:
>> On Wed, 17 Oct 2018 15:05:18 +0200, Robert Markula  
>> said:
> > Two questions arose so far:
>
> > 1. Is the 'UBUNTU' class intended to be complementing the 'DEBIAN' class
> > or does it completely replace the DEBIAN class?
> yes, it is complementing the Debian class.
>
> > 2. Ubuntu 18.04 now uses a different network configuration utility
> > called 'netplan' [1]. However, I don't see support for that in the
> Have a look at
> https://lists.uni-koeln.de/pipermail/linux-fai/2018-May/012019.html
> Derek already wrote some code to generate netplan configs.
>

Excellent link! I slightly modified Derek's script, so the full
scripts/DEBIAN/30-interface now looks like this. Successfully tested on
Ubuntu 14.04 Server, Ubuntu 18.04 Server and Debian 9.5 Server using
DHCP. Did not test static IPs and XORG (using NetworkManager) yet.


#! /bin/bash

error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code

netplan_yaml() {
    # network configuration using ubuntu's netplan.io
    local IFNAME="$1"
    local METHOD="$2"
    echo "Generating netplan configuration for $IFNAME ($METHOD)" >&2
    echo "# generated by FAI"
    echo "network:"
    echo "  version: 2"
    echo "  renderer: $RENDERER"
    case "$RENDERER" in
  networkd)
    echo "  ethernets:"
    echo "    $IFNAME:"
    case "$METHOD" in
  dhcp)
    echo "  dhcp4: true"
    ;;
  static)
    echo "  addresses: [$CIDR]"
    echo "  gateway4: $GATEWAYS_1"
    echo "  nameservers:"
    echo "    search: [$DOMAIN]"
    echo "    addresses: [${DNSSRVS// /, }]"
    ;;
    esac
    esac
}

iface_stanza() {
    # classic network configuration using /etc/network/interfaces
    local IFNAME="$1"
    local METHOD="$2"
    echo "Generating interface configuration for $IFNAME ($METHOD)" >&2
    echo "# generated by FAI"
    echo "auto $IFNAME"
    echo "iface $IFNAME inet $METHOD"
    case "$METHOD" in
  static)
    echo "    address $IPADDR"
    echo "    netmask $NETMASK"
    echo "    broadcast $BROADCAST"
    echo "    gateway $GATEWAYS"
    ;;
    esac
}

newnicnames() {
    # determine predictable network names only for stretch and above

    [ $do_init_tasks -eq 0 ] && return
    [ -z "$NIC1" ] && return
    ver=$($ROOTCMD dpkg-query --showformat='${Version}' --show udev)
    if dpkg --compare-versions $ver lt 220-7; then
    return
    fi


    fields="ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT ID_NET_NAME_PATH"
    for field in $fields; do
    name=$(udevadm info /sys/class/net/$NIC1 | sed -rn "s/^E:
$field=(.+)/\1/p")
    if [[ $name ]]; then
        NIC1=$name
        break
    fi
    done
    if [[ ! $name ]]; then
    echo "$0: error: could not find systemd predictable network name.
Using $NIC1."
    fi
}

if [ -z "$NIC1" ]; then
    echo "ERROR: \$NIC1 is not defined. Cannot configure
/etc/network/interfaces properly."
fi
CIDR=$(ip -o -f inet addr show $NIC1 | awk '{print $4}')
newnicnames

case "$FAI_ACTION" in
  install|dirinstall)
    ifclass DHCPC && METHOD=dhcp || METHOD=static
    ifclass XORG && RENDERER=NetworkManager || RENDERER=networkd

    if [ -d $target/etc/netplan ]; then
    # Ubuntu >= 17.10 with netplan.io
    if [ -n "$NIC1" ]; then
    netplan_yaml $NIC1 $METHOD > $target/etc/netplan/01-${NIC1}.yaml
    fi
    elif [ -d $target/etc/network/interfaces.d ]; then
    # ifupdown >= 0.7.41 (Debian >= 8, Ubuntu >= 14.04)
    iface_stanza lo loopback > $target/etc/network/interfaces.d/lo
    if [ -n "$NIC1" ]; then
    iface_stanza $NIC1 $METHOD > \
    $target/etc/network/interfaces.d/$NIC1
    fi
    else
    (
    iface_stanza lo loopback
    iface_stanza $NIC1 $METHOD
    ) > $target/etc/network/interfaces
    fi

    if ! ifclass DHCPC ; then
    [ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
    if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then
    cp -p /etc/resolv.conf $target/etc
    fi
    fi
    ;;
esac

# here fcopy is mostly used, when installing a client for running in a
# different subnet than during the installation
fcopy -iM /etc/resolv.conf
fcopy -iM /etc/network/interfaces /etc/networks

exit $error



Re: Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden Thomas Lange
> On Wed, 17 Oct 2018 15:05:18 +0200, Robert Markula  
> said:

> Two questions arose so far:

> 1. Is the 'UBUNTU' class intended to be complementing the 'DEBIAN' class
> or does it completely replace the DEBIAN class?
yes, it is complementing the Debian class.

> 2. Ubuntu 18.04 now uses a different network configuration utility
> called 'netplan' [1]. However, I don't see support for that in the
Have a look at
https://lists.uni-koeln.de/pipermail/linux-fai/2018-May/012019.html
Derek already wrote some code to generate netplan configs.

-- 
regards Thomas


Re: Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden Justin Cattle
Personally - I like yaml and use it a lot for many things :)

I've never liked xml on the other hand!


Cheers,
Just


On Wed, 17 Oct 2018 at 16:07, John G Heim  wrote:

> It' may be worse than you know. Netplan uses something called yaml for
> it's config files. YAML is a newish config language, sort of a
> replacement and/or competitor for XML.  I am no fan of XML, believe me.
> I'm blind, you sighted people think you have it hard editing XML config
> files, try doing it by listening to the code. At the same time, I am not
> looking forward to learning yet another protocol that is essentially a
> programming language for config files.
>
> I understand the drive. Every system has it's own syntax that ammounts
> to a programming language for it's config files. Knowing the syntax for
> bind9 config files doesn't help you one bit when writing a systemd
> config file. Samba uses a syntax borrowed from Windows INI files. About
> the only place I can think of where I didn't have to learn a new config
> file language is with apache and podcast feeds. Both use XML so if you
> understand the syntax for apache config files, you also understand the
> syntax for podcast feed files.
>
> So I don't know what to think about netplan & YAML. Haven't made up my
> mind whether to hate it or love it.
>
> On 10/17/18 9:19 AM, Justin Cattle wrote:
> > We have quite a lot invested in ifupdown - we won't be using netplan for
> > servers on bionic.
> >
> > I know that's not a helpful response, but if you decide not to use
> > netplan you won't be the only people :)
> >
> >
> > Cheers,
> > Just
> >
> >
> > On Wed, 17 Oct 2018 at 15:11, John G Heim  > > wrote:
> >
> > Well, I pulled a Bart Simpson. I tried for about 10 minutes and gave
> up.
> >
> > Bakc with Ubuntu 16.04, I tried modifying the old networking script
> > using the ifclass command. If the UBUNTU class was defined, it
> > generated
> > a /etc/netplan/10-interfaces file. Otherwise, it ran the old code to
> > generate a /etc/networking/interfaces file.
> >
> > I think the reason I couldn't get it to work was because of a bug in
> > NetworkManager. It looked like NetworkManager would neither make that
> > interface work nor release it so it could be configured by netplan.
> > This
> > was a long time ago and my memory is a little fuzzy but I recall
> typing
> > in network manager commands to try to get it to stop managing the
> > interface, it saying it wasn't managing the interface, while at the
> > same
> > time, a listing of the interfaces it managed showed the interface.
> Now
> > that I think about it, I believe I worked on it for way more than 10
> > minutes because I recall doing a file-by-file comparison of the
> configs
> > from a regular Ubuntu install and an FAI install and finding no
> > difference. The files in /etc were identical yet it worked in a
> normal
> > install of Ubuntu but not in the FAI install.
> >
> > I finally just added ifupdown to the packages installed during an
> > Ubuntu
> > install. So I've been subverting Ubuntu's normal network config
> process
> > for years now. I just don't do it the way Ubuntu would normally do
> > it. I
> > figure when/if Debian switched to netplan, the FAI developers will
> > modify FAI to account for it.
> >
> > Now that you've brought it up though, I might give it another try
> > when I
> > upgrade all of my workstations to Ubuntu 18.10 during semester break
> in
> > January. If I get it to work, I can post a howto here.
> >
> >
> >
> >
> > On 10/17/18 8:05 AM, Robert Markula wrote:
> >  > Hi,
> >  >
> >  > I'm currently in the process of updating tried-and-trusted FAI
> > 4.2.5 to
> >  > 5.7.2 and completely reworking the config space in the process,
> > starting
> >  > with the examples provided by fai-doc (which, btw, has been quite
> a
> >  > surprisingly pleasant experience so far, as fewer customization is
> >  > necessary in order to support different distributions as it was
> > the case
> >  > with the ancient 4.2.5 version. Nice!)
> >  >
> >  > Two questions arose so far:
> >  >
> >  > 1. Is the 'UBUNTU' class intended to be complementing the
> > 'DEBIAN' class
> >  > or does it completely replace the DEBIAN class?
> >  >
> >  > 2. Ubuntu 18.04 now uses a different network configuration utility
> >  > called 'netplan' [1]. However, I don't see support for that in the
> >  > example configspace. So while a Ubuntu Bionic host can be
> > successfully
> >  > installed using the 'FAIBASE UBUNTU DEMO' classes, it has no
> network
> >  > connectivity as the netplan configuration is missing from the
> > examples.
> >  > Has anybody successfully integrated netplan support yet?
> >  >
> >  >
> >  > Robert
> >  >
> >  > [1] 

Re: Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden John G Heim
It' may be worse than you know. Netplan uses something called yaml for 
it's config files. YAML is a newish config language, sort of a 
replacement and/or competitor for XML.  I am no fan of XML, believe me. 
I'm blind, you sighted people think you have it hard editing XML config 
files, try doing it by listening to the code. At the same time, I am not 
looking forward to learning yet another protocol that is essentially a 
programming language for config files.


I understand the drive. Every system has it's own syntax that ammounts 
to a programming language for it's config files. Knowing the syntax for 
bind9 config files doesn't help you one bit when writing a systemd 
config file. Samba uses a syntax borrowed from Windows INI files. About 
the only place I can think of where I didn't have to learn a new config 
file language is with apache and podcast feeds. Both use XML so if you 
understand the syntax for apache config files, you also understand the 
syntax for podcast feed files.


So I don't know what to think about netplan & YAML. Haven't made up my 
mind whether to hate it or love it.


On 10/17/18 9:19 AM, Justin Cattle wrote:
We have quite a lot invested in ifupdown - we won't be using netplan for 
servers on bionic.


I know that's not a helpful response, but if you decide not to use 
netplan you won't be the only people :)



Cheers,
Just


On Wed, 17 Oct 2018 at 15:11, John G Heim > wrote:


Well, I pulled a Bart Simpson. I tried for about 10 minutes and gave up.

Bakc with Ubuntu 16.04, I tried modifying the old networking script
using the ifclass command. If the UBUNTU class was defined, it
generated
a /etc/netplan/10-interfaces file. Otherwise, it ran the old code to
generate a /etc/networking/interfaces file.

I think the reason I couldn't get it to work was because of a bug in
NetworkManager. It looked like NetworkManager would neither make that
interface work nor release it so it could be configured by netplan.
This
was a long time ago and my memory is a little fuzzy but I recall typing
in network manager commands to try to get it to stop managing the
interface, it saying it wasn't managing the interface, while at the
same
time, a listing of the interfaces it managed showed the interface. Now
that I think about it, I believe I worked on it for way more than 10
minutes because I recall doing a file-by-file comparison of the configs
from a regular Ubuntu install and an FAI install and finding no
difference. The files in /etc were identical yet it worked in a normal
install of Ubuntu but not in the FAI install.

I finally just added ifupdown to the packages installed during an
Ubuntu
install. So I've been subverting Ubuntu's normal network config process
for years now. I just don't do it the way Ubuntu would normally do
it. I
figure when/if Debian switched to netplan, the FAI developers will
modify FAI to account for it.

Now that you've brought it up though, I might give it another try
when I
upgrade all of my workstations to Ubuntu 18.10 during semester break in
January. If I get it to work, I can post a howto here.




On 10/17/18 8:05 AM, Robert Markula wrote:
 > Hi,
 >
 > I'm currently in the process of updating tried-and-trusted FAI
4.2.5 to
 > 5.7.2 and completely reworking the config space in the process,
starting
 > with the examples provided by fai-doc (which, btw, has been quite a
 > surprisingly pleasant experience so far, as fewer customization is
 > necessary in order to support different distributions as it was
the case
 > with the ancient 4.2.5 version. Nice!)
 >
 > Two questions arose so far:
 >
 > 1. Is the 'UBUNTU' class intended to be complementing the
'DEBIAN' class
 > or does it completely replace the DEBIAN class?
 >
 > 2. Ubuntu 18.04 now uses a different network configuration utility
 > called 'netplan' [1]. However, I don't see support for that in the
 > example configspace. So while a Ubuntu Bionic host can be
successfully
 > installed using the 'FAIBASE UBUNTU DEMO' classes, it has no network
 > connectivity as the netplan configuration is missing from the
examples.
 > Has anybody successfully integrated netplan support yet?
 >
 >
 > Robert
 >
 > [1] https://netplan.io
 >


Notice:  This email is confidential and may contain copyright material 
of members of the Ocado Group. Opinions and views expressed in this 
message may not necessarily reflect the opinions and views of the 
members of the Ocado Group.


If you are not the intended recipient, please notify us immediately and 
delete all copies of this message. Please note that it is your 
responsibility to scan this message for viruses.


Fetch and Sizzle are trading names of Speciality Stores Limited and 
Fabled is a trading 

Re: Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden Justin Cattle
We have quite a lot invested in ifupdown - we won't be using netplan for
servers on bionic.

I know that's not a helpful response, but if you decide not to use netplan
you won't be the only people :)


Cheers,
Just


On Wed, 17 Oct 2018 at 15:11, John G Heim  wrote:

> Well, I pulled a Bart Simpson. I tried for about 10 minutes and gave up.
>
> Bakc with Ubuntu 16.04, I tried modifying the old networking script
> using the ifclass command. If the UBUNTU class was defined, it generated
> a /etc/netplan/10-interfaces file. Otherwise, it ran the old code to
> generate a /etc/networking/interfaces file.
>
> I think the reason I couldn't get it to work was because of a bug in
> NetworkManager. It looked like NetworkManager would neither make that
> interface work nor release it so it could be configured by netplan. This
> was a long time ago and my memory is a little fuzzy but I recall typing
> in network manager commands to try to get it to stop managing the
> interface, it saying it wasn't managing the interface, while at the same
> time, a listing of the interfaces it managed showed the interface. Now
> that I think about it, I believe I worked on it for way more than 10
> minutes because I recall doing a file-by-file comparison of the configs
> from a regular Ubuntu install and an FAI install and finding no
> difference. The files in /etc were identical yet it worked in a normal
> install of Ubuntu but not in the FAI install.
>
> I finally just added ifupdown to the packages installed during an Ubuntu
> install. So I've been subverting Ubuntu's normal network config process
> for years now. I just don't do it the way Ubuntu would normally do it. I
> figure when/if Debian switched to netplan, the FAI developers will
> modify FAI to account for it.
>
> Now that you've brought it up though, I might give it another try when I
> upgrade all of my workstations to Ubuntu 18.10 during semester break in
> January. If I get it to work, I can post a howto here.
>
>
>
>
> On 10/17/18 8:05 AM, Robert Markula wrote:
> > Hi,
> >
> > I'm currently in the process of updating tried-and-trusted FAI 4.2.5 to
> > 5.7.2 and completely reworking the config space in the process, starting
> > with the examples provided by fai-doc (which, btw, has been quite a
> > surprisingly pleasant experience so far, as fewer customization is
> > necessary in order to support different distributions as it was the case
> > with the ancient 4.2.5 version. Nice!)
> >
> > Two questions arose so far:
> >
> > 1. Is the 'UBUNTU' class intended to be complementing the 'DEBIAN' class
> > or does it completely replace the DEBIAN class?
> >
> > 2. Ubuntu 18.04 now uses a different network configuration utility
> > called 'netplan' [1]. However, I don't see support for that in the
> > example configspace. So while a Ubuntu Bionic host can be successfully
> > installed using the 'FAIBASE UBUNTU DEMO' classes, it has no network
> > connectivity as the netplan configuration is missing from the examples.
> > Has anybody successfully integrated netplan support yet?
> >
> >
> > Robert
> >
> > [1] https://netplan.io
> >
>

-- 


Notice:  This email is confidential and may contain copyright material of 
members of the Ocado Group. Opinions and views expressed in this message 
may not necessarily reflect the opinions and views of the members of the 
Ocado Group. 

 

If you are not the intended recipient, please notify us 
immediately and delete all copies of this message. Please note that it is 
your responsibility to scan this message for viruses. 

 

Fetch and Sizzle 
are trading names of Speciality Stores Limited and Fabled is a trading name 
of Marie Claire Beauty Limited, both members of the Ocado Group.

 


References to the “Ocado Group” are to Ocado Group plc (registered in 
England and Wales with number 7098618) and its subsidiary undertakings (as 
that expression is defined in the Companies Act 2006) from time to time.  
The registered office of Ocado Group plc is Buildings One & Two, Trident 
Place, Mosquito Way, Hatfield, Hertfordshire, AL10 9UL.


Re: Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden John G Heim

Well, I pulled a Bart Simpson. I tried for about 10 minutes and gave up.

Bakc with Ubuntu 16.04, I tried modifying the old networking script 
using the ifclass command. If the UBUNTU class was defined, it generated 
a /etc/netplan/10-interfaces file. Otherwise, it ran the old code to 
generate a /etc/networking/interfaces file.


I think the reason I couldn't get it to work was because of a bug in 
NetworkManager. It looked like NetworkManager would neither make that 
interface work nor release it so it could be configured by netplan. This 
was a long time ago and my memory is a little fuzzy but I recall typing 
in network manager commands to try to get it to stop managing the 
interface, it saying it wasn't managing the interface, while at the same 
time, a listing of the interfaces it managed showed the interface. Now 
that I think about it, I believe I worked on it for way more than 10 
minutes because I recall doing a file-by-file comparison of the configs 
from a regular Ubuntu install and an FAI install and finding no 
difference. The files in /etc were identical yet it worked in a normal 
install of Ubuntu but not in the FAI install.


I finally just added ifupdown to the packages installed during an Ubuntu 
install. So I've been subverting Ubuntu's normal network config process 
for years now. I just don't do it the way Ubuntu would normally do it. I 
figure when/if Debian switched to netplan, the FAI developers will 
modify FAI to account for it.


Now that you've brought it up though, I might give it another try when I 
upgrade all of my workstations to Ubuntu 18.10 during semester break in 
January. If I get it to work, I can post a howto here.





On 10/17/18 8:05 AM, Robert Markula wrote:

Hi,

I'm currently in the process of updating tried-and-trusted FAI 4.2.5 to
5.7.2 and completely reworking the config space in the process, starting
with the examples provided by fai-doc (which, btw, has been quite a
surprisingly pleasant experience so far, as fewer customization is
necessary in order to support different distributions as it was the case
with the ancient 4.2.5 version. Nice!)

Two questions arose so far:

1. Is the 'UBUNTU' class intended to be complementing the 'DEBIAN' class
or does it completely replace the DEBIAN class?

2. Ubuntu 18.04 now uses a different network configuration utility
called 'netplan' [1]. However, I don't see support for that in the
example configspace. So while a Ubuntu Bionic host can be successfully
installed using the 'FAIBASE UBUNTU DEMO' classes, it has no network
connectivity as the netplan configuration is missing from the examples.
Has anybody successfully integrated netplan support yet?


Robert

[1] https://netplan.io



Ubuntu 18.04: netplan support

2018-10-17 Diskussionsfäden Robert Markula
Hi,

I'm currently in the process of updating tried-and-trusted FAI 4.2.5 to
5.7.2 and completely reworking the config space in the process, starting
with the examples provided by fai-doc (which, btw, has been quite a
surprisingly pleasant experience so far, as fewer customization is
necessary in order to support different distributions as it was the case
with the ancient 4.2.5 version. Nice!)

Two questions arose so far:

1. Is the 'UBUNTU' class intended to be complementing the 'DEBIAN' class
or does it completely replace the DEBIAN class?

2. Ubuntu 18.04 now uses a different network configuration utility
called 'netplan' [1]. However, I don't see support for that in the
example configspace. So while a Ubuntu Bionic host can be successfully
installed using the 'FAIBASE UBUNTU DEMO' classes, it has no network
connectivity as the netplan configuration is missing from the examples.
Has anybody successfully integrated netplan support yet?


Robert

[1] https://netplan.io