12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- .. _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 python versions. You will
- need to ensure you have the following:
- - Salt is installed, with all required dependnecies for both Python2 and Python3
- - 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
- 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``.
|