salt icon indicating copy to clipboard operation
salt copied to clipboard

[BUG] salt-ssh requires the distro python package

Open TimidRobot opened this issue 3 years ago • 7 comments

Description salt-ssh requires the distro python package.

Setup

  • [ ] on-prem machine
  • [ ] VM (Virtualbox, KVM, etc. please specify)
  • [x] VM running on a cloud service, please be explicit and add details
  • [ ] container (Kubernetes, Docker, containerd, etc. please specify)
  • [ ] or a combination, please be explicit
  • [ ] jails if it is FreeBSD

Steps to Reproduce the behavior

  1. Provisioned a Debian 11 Bullseye VM on AWS using
  2. Attempt to use salt-ssh to configure it.
    sudo salt-ssh TARGET-HOST test.version
    
    TARGET-HOST:
        ----------
        retcode:
            1
        stderr:
            Connection to TARGET-HOST-IP closed.
        stdout:
    
  3. Follow Debugging salt-ssh - Salt SSH instructions to manually invoke salt-call on target host:
    Traceback (most recent call last):
      File "/var/tmp/.admin_62bf38_salt/salt-call", line 27, in <module>
        salt_call()
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/scripts.py", line 426, in salt_call
        import salt.cli.call
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/cli/call.py", line 3, in <module>
        import salt.cli.caller
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/cli/caller.py", line 14, in <module>
        import salt.loader
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/loader/__init__.py", line 14, in <module>
        import salt.config
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/config/__init__.py", line 17, in <module>
        import salt.syspaths
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/syspaths.py", line 22, in <module>
        import salt.utils.platform
      File "/var/tmp/.admin_62bf38_salt/pyall/salt/utils/platform.py", line 11, in <module>
        from distro import linux_distribution
    ModuleNotFoundError: No module named 'distro'
    
  4. Manually install distro on TARGET-HOST:
    sudo apt-get install python3-distro
    
  5. Confirm it works as expected:
    sudo salt-ssh TARGET-HOST test.version
    
    TARGET-HOST:
        3004
    

Expected behavior salt-ssh should succeed without requiring packages on the target host (if this assumption is wrong, then the documentation should be updated to included dependencies)

Versions Report

salt --versions-report (Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
Salt Version:
          Salt: 3004
 
Dependency Versions:
          cffi: Not Installed
      cherrypy: Not Installed
      dateutil: 2.7.3
     docker-py: Not Installed
         gitdb: 2.0.5
     gitpython: 2.1.11
        Jinja2: 2.10
       libgit2: Not Installed
      M2Crypto: Not Installed
          Mako: Not Installed
       msgpack: 0.5.6
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     pycparser: Not Installed
      pycrypto: 2.6.1
  pycryptodome: 3.6.1
        pygit2: Not Installed
        Python: 3.7.3 (default, Jan 22 2021, 20:04:44)
  python-gnupg: Not Installed
        PyYAML: 3.13
         PyZMQ: 17.1.2
         smmap: 2.0.5
       timelib: Not Installed
       Tornado: 4.5.3
           ZMQ: 4.3.1
 
System Versions:
          dist: debian 10 buster
        locale: UTF-8
       machine: x86_64
       release: 4.19.0-18-amd64
        system: Linux
       version: Debian GNU/Linux 10 buster

TimidRobot avatar Jan 27 '22 19:01 TimidRobot

@TimidRobot Thank you for reporting this issue.

I am not able to replicate the issue and it seems to work fine for me when installing the official salt package from https://repo.saltproject.io/#debian

How did you install salt?

I also see that you mention that issue is on Debian 11 but in your salt version output it shows Debian 10.

Thanks.

frogunder avatar Feb 02 '22 16:02 frogunder

@frogunder

  • master: Debian GNU/Linux 10 (buster)
    • deb https://repo.saltproject.io/py3/debian/10/amd64/3004 buster main
      • salt-common 3004+ds-1
      • salt-master 3004+ds-1
      • salt-minion 3004+ds-1
      • salt-ssh 3004+ds-1
  • minion: Debian GNU/Linux 11 (bullseye)
    • deb https://repo.saltproject.io/py3/debian/11/amd64/3004 bullseye main
      • salt-common 3004+ds-1
      • salt-minion 3004+ds-1

The Debian GNU/Linux 11 (bullseye) AMI (debian-11-amd64-20220121-894: ami-04dd0542609808c50) does not have python3-distro installed.

Did you try uninstalling python3-distro on the test minion (or removing it via pip if it was installed that way)?

TimidRobot avatar Feb 02 '22 16:02 TimidRobot

@saltstack/team-ssh Anyone have time to take a look at this? Thanks.

frogunder avatar Feb 03 '22 17:02 frogunder

@krionbsd This might be a packaging issue. Can you take a look?

frogunder avatar Feb 11 '22 21:02 frogunder

Confirming that this also occurs with an Alma 8.7 master on onedir 3005.1.4 with a target minion of Alma 9.1.

johnnybubonic avatar Jan 16 '23 07:01 johnnybubonic

still occurs: master: ubuntu20.04 , 3005.1

target minion: Rocky Linux release 9.1 (Blue Onyx)

HalfLife1 avatar Mar 24 '23 07:03 HalfLife1

This no longer appears to be an issue with version 3006. Can anyone confirm?

trend-will-gerik avatar Feb 08 '24 19:02 trend-will-gerik