Description
On 3001rc1 on Ubuntu 20 network.arp command does not work.
Fails with this error
Command required for 'network.arp' not found: The 'arp' binary was not found in $PATH.
Setup
Install 3001rc1 on a Ubuntu 20 machine.
Steps to Reproduce the behavior
Run salt '*' network.arp
ubu20:
Command required for 'network.arp' not found: The 'arp' binary was not found in $PATH.
ERROR: Minions returned with non-zero exit code
Expected behavior
ubu18:
----------
00:00:0c:9f:f0:01:
104.239.135.1
18:8b:45:d9:71:41:
104.239.135.3
Versions Report
Salt Version:
Salt: 3001rc1
Dependency Versions:
cffi: Not Installed
cherrypy: unknown
dateutil: 2.7.3
docker-py: Not Installed
gitdb: 2.0.6
gitpython: 3.0.7
Jinja2: 2.10.1
libgit2: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.6.2
mysql-python: Not Installed
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: 3.6.1
pygit2: Not Installed
Python: 3.8.2 (default, Mar 13 2020, 10:14:16)
python-gnupg: 0.4.5
PyYAML: 5.3.1
PyZMQ: 18.1.1
smmap: 2.0.5
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.3.2
System Versions:
dist: ubuntu 20.04 focal
locale: utf-8
machine: x86_64
release: 5.4.0-26-generic
system: Linux
version: Ubuntu 20.04 focal
It's in the obsolete package net-tools, which is no longer part of the default installation.
That package has been deprecated for a while (nine years ago).
Replacement commands are as follows:
old | new
-- | --
arp | ip neighbor
ifconfig | ip addr, ip link, ip -stats
iptunnel | ip tunnel
iwconfig | iw
nameif | ip link
netstat | ss
route | ip route
There's probably a wider issue here for all the linux networking functions.
The plan is to add a Recommends dependency on net-tools to Ubuntu 20.04 for the actual release.
I already updated the debian control file.
For replacing net-tools' functionality, instead of using iproute2's CLI I feel like it might make sense to consider using pyroute2 instead, which is most likely far more performant, since it doesn't shell-out for every function but uses a native Python netlink implementation instead and also eliminates the issue of having to rely on parsing a command's output.
Keeping open 57541 and closing this as changes were made in salt-pack-py3 repo for the Sodium release
@bryceml the 3001 release package has net-tools as a required dependency instead of a recommendation.
Can this be fixed?
It is a recommends dependency, not a required one. We could potentially change it to a suggests dependency. I would want more community input on that. We went with recommends because it would "just work" for people, and they could still remove it if they wanted to.
Most helpful comment
For replacing
net-tools' functionality, instead of usingiproute2's CLI I feel like it might make sense to consider using pyroute2 instead, which is most likely far more performant, since it doesn't shell-out for every function but uses a native Python netlink implementation instead and also eliminates the issue of having to rely on parsing a command's output.