ansible-collections / ibm_zos_core

Red Hat Ansible Certified Content for IBM Z
75 stars 44 forks source link

[Epic] [community] [code] enhance SSH connection for better z/OS compatibility #1438

Open ketankelkar opened 3 months ago

ketankelkar commented 3 months ago

Currently, an Ansible user must set about 10 environment variables in order to target a z/OS managed node.

environment:
  _BPXK_AUTOCVT: "ON"
  _CEE_RUNOPTS: "FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)"
  _TAG_REDIR_ERR: "txt"
  _TAG_REDIR_IN: "txt"
  _TAG_REDIR_OUT: "txt"
  LANG: "C"

  LIBPATH: "{{ ZOAU }}/lib/:{{ PYZ }}/lib:/lib:/usr/lib:."
  PYTHONPATH: "{{ ZOAU }}/lib/{{ PYZ_VERSION }}"
  PATH: "{{ ZOAU }}/bin:{{ PYZ }}/bin:/bin:/usr/sbin:/var/bin:/usr/lpp/java/java180/J8.0_64/bin"

  PYTHONSTDINENCODING: "cp1047"

While some variables are necessary to configure based on target systems, eg: PATH, LIBPATH, PYTHONPATH based on where dependencies are located and installed on target systems, other variables have fairly consistent values across all z/OS systems:

_BPXK_AUTOCVT: "ON"
_CEE_RUNOPTS: "FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)"
_TAG_REDIR_ERR: "txt"
_TAG_REDIR_IN: "txt"
_TAG_REDIR_OUT: "txt"
LANG: "C"

This epic tracks the effort to change the community code such that certain environment variable values are pre-configured for the z/OS Ansible user "out-of-the-box".

Notice in the Ansible community src code - connection dir, there exist provisions for Windows OS (winrm and psrp) as well as for Python shell (paramiko). There may be a way to include customization for z/OS targets.

For additional context:

The items in this epic: