Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month, online, via Jitsi Meet.

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] I Hate Ubuntu



Richard Pieri <richard.pieri at gmail.com> writes:

> On 5/8/2018 4:32 PM, A. Richard Miller wrote:
>> Here, Rich, try this:
>> http://www.ubuntugeek.com/disable-netplan-on-ubuntu-17-10.html
>> 
>> Then you can save your hate for more deserving targets.
>
> I think you're missing the point. Points.
>
> First, these Ubuntu installs are for product testing. For paying
> customers. Who won't be disabling Netplan. Which means disabling Netplan
> in the test environments DOES. NOT. HAPPEN.
>
> Second, the YAML version forces dependencies on NetworkManager, systemd,
> and a(nother) YAML parser without making management of network
> interfaces any better or easier by hand and only minimally by automation
> tools like Ansible.
>
> Netplan is vendor gratuitous changes and I will continue to hate Ubuntu
> for engaging in the practice.

These descriptions from https://netplan.io are a bit funny:

"The network configuration abstraction renderer
Netplan is a utility for easily configuring..."

abstraction renderer? Pfft. What's so abstract about network interfaces?

"Netplan reads network configuration from /etc/netplan/*.yaml which are
written by administrators, installers, cloud image instantiations, or
other OS deployments."

"The most useful configuration snippet (to bring up things via dhcp) is as follows:"

     network:
       version: 2
       renderer: NetworkManager

Okay, and how does NetworkManager know to choose dhcp from that?  Is
dhcp "version 2?" Probably not, eh? This maybe is the YAML "API" version
I'm going to guess.

Well then, aside from the problem of having to learn what YAML keys are
available or mandatory, and the unpleasantness of typing such things
vs. a well devised custom text format intuitively matching ifconfig (or
whatever command we're supposed to be using for that now on Linux, ip?),
or the near certainty that YAML will be considered pass? in 5 years or
so and replaced with whatever the one true persistance format of the day
is, seems like we're not configuring anything here so much as telling
the system that we're using something else to configure the
interface.

Here's what the equivalent looks like on the machine I'm using right
now. urndis0 is the network interface device name for ethernet over USB
to my phone, which gives me my internet:

$ cat /etc/hostname.urndis0
dhcp
<<<<pause output for a moment >>>>
Plus I can do the thing below here in a way I think you all
can understand without reading OpenBSD docs, but for a normal
ethernet interface this isn't necessary. (Since I wrote that
comment below I found out that Android is smart enough to remember when
you pressed the USB tethering slider and somehow slide it over when OpenBSD
is ready for it, but it's still handy to have this for when I forget.)
<<<<rest of file>>>
# Without turning on USB Tethering at exactly the right time
# during boot, urndis0 won't be up and rl0 will instead become 
# the default gateway. Undo that for when I manually restart networking
# for this interface.

!route del default 10.0.0.1
!route add default 192.168.42.129

<<the end>>

Here is the very difficult parsing code for that from /etc/netstart:

        # Parse the hostname.if(5) file and fill _cmds array with interface
        # configuration commands.
        set -o noglob
        while IFS= read -- _line; do
                parse_hn_line $_line
        done <$_hn

... and the relevant part of the case statement (all of parse_hn_line is
short enough to fit in one screen in case you doubt the other cases) in
parse_hn_line ...


        dhcp)   _c[0]=
                _cmds[${#_cmds[*]}]="ifconfig $_if ${_c[@]} down;dhclient $_if"
                V4_DHCPCONF=true
                ;;

       '!'*)   _cmd=$(print -- "${_c[@]}" | sed 's/\$if/'$_if'/g')
            _cmds[${#_cmds[*]}]="${_cmd#!}"
            ;;

So it's not like everything that isn't xml, yaml, or json has to be some
horrendous journey into natural language parsing, like say...
https://lists.debian.org/debian-user/2018/02/msg00095.html

Now, I'm not saying I've lost enthusiasm for GNU/Linux in general, but
when you run the two systems side by side, you start to notice how the
people developing the non-GNU parts of Linux userland, or perhaps the
more influential ones, are from a quite different development culture
than the more tradional BSD one, and in a different way from how the GNU
people were/are. It reminds me more of the .NET developer culture, which
isn't a bad thing necessarily, but not always to my first preference,
what with the intimidating terminology like abstraction renderers,
provisioners, providers or what have you.

-- 
Mike Small
smallm at sdf.org



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org