123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- .. _ssh-ext-alternatives:
- ====================
- SSH Ext Alternatives
- ====================
- In the 2019.2.0 release the ``ssh_ext_alternatives`` feature was added.
- This allows salt-ssh to work across different supported python versions. You will
- need to ensure you have the following:
- - Salt is installed, with all required dependnecies for the Python version.
- - Everything needs to be importable from the respective Python environment.
- To enable using this feature you will need to edit the master configuration similar
- to below:
- .. code-block:: yaml
- ssh_ext_alternatives:
- 2019.2: # Namespace, can be anything.
- py-version: [2, 7] # Constraint to specific interpreter version
- path: /opt/2019.2/salt # Main Salt installation directory.
- dependencies: # List of dependencies and their installation paths
- jinja2: /opt/jinja2
- yaml: /opt/yaml
- tornado: /opt/tornado
- msgpack: /opt/msgpack
- certifi: /opt/certifi
- singledispatch: /opt/singledispatch.py
- singledispatch_helpers: /opt/singledispatch_helpers.py
- markupsafe: /opt/markupsafe
- backports_abc: /opt/backports_abc.py
- .. warning::
- When using Salt versions >= 3001 and Python 2 is your ``py-version``
- you need to use an older version of Salt that supports Python 2.
- For example, if using Salt-SSH version 3001 and you do not want
- to install Python 3 on your target host you can use ``ssh_ext_alternatives``'s
- ``path`` option. This option needs to point to a 2019.2.3 Salt installation directory
- on your Salt-SSH host, which still supports Python 2.
- auto_detect
- -----------
- In the 3001 release the ``auto_detect`` feature was added for ``ssh_ext_alternatives``.
- This allows salt-ssh to automatically detect the path to all of your dependencies and
- does not require you to define them under ``dependencies``.
- .. code-block:: yaml
- ssh_ext_alternatives:
- 2019.2: # Namespace, can be anything.
- py-version: [2, 7] # Constraint to specific interpreter version
- path: /opt/2019.2/salt # Main Salt installation directory.
- auto_detect: True # Auto detect dependencies
- py_bin: /usr/bin/python2.7 # Python binary path used to auto detect dependencies
- If ``py_bin`` is not set alongside ``auto_detect``, it will attempt to auto detect
- the dependnecies using the major version set in ``py-version``. For example if you
- have ``[2, 7]`` set as your ``py-version``, it will attempt to use the binary ``python2``.
- You can also use ``auto_detect`` and ``dependencies`` together.
- .. code-block:: yaml
- ssh_ext_alternatives:
- 2019.2: # Namespace, can be anything.
- py-version: [2, 7] # Constraint to specific interpreter version
- path: /opt/2019.2/salt # Main Salt installation directory.
- auto_detect: True # Auto detect dependencies
- py_bin: /usr/bin/python2.7 # Python binary path to auto detect dependencies
- dependencies: # List of dependencies and their installation paths
- jinja2: /opt/jinja2
- If a dependency is defined in the ``dependecies`` list ``ssh_ext_alternatives`` will use
- this dependency, instead of the path that ``auto_detect`` finds. For example, if you define
- ``/opt/jinja2`` under your ``dependencies`` for jinja2, it will not try to autodetect the
- file path to the jinja2 module, and will favor ``/opt/jinja2``.
|