Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate 'zwe init' actions to templated JCL #3718

Open
wants to merge 275 commits into
base: v2.x/staging
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
275 commits
Select commit Hold shift + click to select a range
8d1168b
Switch to tso version of is_data_set_exists
1000TurquoisePogs Feb 7, 2024
7274478
Fix syntax error preventing build
1000TurquoisePogs Feb 7, 2024
3af22ed
Fix line length on zweiapf
1000TurquoisePogs Feb 8, 2024
41bb33a
Split mvs task into 2 because usually authloadlib doesnt need to be c…
1000TurquoisePogs Feb 8, 2024
15f0163
Reduce duplicate code in each init phase
1000TurquoisePogs Feb 8, 2024
4fff502
fixed regression on finding jcllib and exiting on not
1000TurquoisePogs Feb 9, 2024
3d67b46
Add TS code from https://github.com/zowe/zowe-install-packaging/pull/…
1000TurquoisePogs Feb 9, 2024
bda8687
remove shell code and prevent duplicate job logging in verbose mode
1000TurquoisePogs Feb 9, 2024
ce48ee2
Add TS version of zwe install
1000TurquoisePogs Feb 9, 2024
4479db9
Revert install command for now while more testing is done
1000TurquoisePogs Feb 9, 2024
10e8340
Do not rename members
1000TurquoisePogs Feb 12, 2024
c9aa8b1
Split ZWENOKYR, fix bug on submitting right job for ZWEKRING replacem…
1000TurquoisePogs Feb 12, 2024
3ffb478
Fixes to bugs found by @Martin-Zeithaml
1000TurquoisePogs Feb 12, 2024
ce6b085
Fix bug in init stc where it said ZWE**S**ISTC accidentally. Fix stri…
1000TurquoisePogs Feb 12, 2024
0acee7e
Simplify init certificate shell code by removing certificate/keyring-…
1000TurquoisePogs Feb 12, 2024
dedef42
Fix bug in keyring generation where commonname fields were not substi…
1000TurquoisePogs Feb 12, 2024
0dd2d90
Added EXEC statement
Martin-Zeithaml Feb 13, 2024
20c0aeb
RACF specific JCL
Martin-Zeithaml Feb 13, 2024
781f688
Remove extra periods '.' in various JCL. Add quotes around runtime di…
1000TurquoisePogs Feb 13, 2024
4cc018f
Add in node and java DETECT code from init ts PR to avoid schema errors
1000TurquoisePogs Feb 13, 2024
b81bfdf
Allow remover jcls to continue execution even if bad rc, because we d…
1000TurquoisePogs Feb 13, 2024
2c5c17c
Valid DSN example
Martin-Zeithaml Feb 20, 2024
08b0d1c
Schema validations: datasets
Martin-Zeithaml Feb 21, 2024
36dff34
zwe diagnose running under configmgr
Martin-Zeithaml Oct 27, 2023
9d5a738
bin/libs/string.sh: trim update
Martin-Zeithaml Jan 31, 2024
cdb1741
build: sigstore sign build artifacts
MarkAckert Jan 22, 2024
1ffb834
build: add id-token permissions for sigstore
MarkAckert Jan 22, 2024
b90883f
build: discrete permissions cont..
MarkAckert Jan 22, 2024
fcf21c0
build: discrete permissions cont... PR
MarkAckert Jan 22, 2024
5679583
build: update contents permissions (ack locks)
MarkAckert Jan 22, 2024
c14385a
Update zwe for handeling missing parms
Martin-Zeithaml Feb 6, 2024
f161163
Use the zos function for getFileEncoding (#3642)
Martin-Zeithaml Feb 14, 2024
38b99d6
update changelog to align with 2.15.0
MarkAckert Feb 14, 2024
44f1316
TSS: Detect zOSMF Root CA (#3725)
Martin-Zeithaml Feb 15, 2024
820979e
Split zowe class creation out of the security jcls because its not ne…
1000TurquoisePogs Feb 21, 2024
2b1def8
WIP on use of a generator script for JCL
1000TurquoisePogs Nov 28, 2023
a882a72
Added 2 more samplib contents to omit as not jcl
1000TurquoisePogs Jan 23, 2024
eb43f56
Add 'zwe init generate' for running ZWEGENER. Migrate init mvs logic …
1000TurquoisePogs Jan 29, 2024
b98d254
Do string replace on zwegener in zwe init generate to fill in require…
1000TurquoisePogs Jan 29, 2024
6ec8559
Bump tsconfig to es2021 due to replaceAll
1000TurquoisePogs Jan 29, 2024
5201654
Revert to es2020 and use replace instead of replaceall
1000TurquoisePogs Jan 29, 2024
79c2d68
Revert ZWESECUR for now. VTL template issues.
1000TurquoisePogs Jan 29, 2024
e631203
Whitespace fixes for jcl
1000TurquoisePogs Jan 30, 2024
22e00ea
Add better mvs step logging and implement jcl cleanup for init vsam
1000TurquoisePogs Jan 30, 2024
08a12f2
Add STC to jcl lib output. Fix whitespace on ZWEGENER
1000TurquoisePogs Jan 30, 2024
0779be4
Fix zwekring reference and vsam breaking rexx
1000TurquoisePogs Jan 30, 2024
f3cf28b
Fixes for job submission and update of stc jcl
1000TurquoisePogs Jan 31, 2024
0e59510
Fixes after testing
1000TurquoisePogs Jan 31, 2024
639d2e4
Add way to fill in config file into zweslstc. run gener in init steps…
1000TurquoisePogs Feb 1, 2024
f969f99
Add missing error messages. Implement STC JCL and trim init stc.
1000TurquoisePogs Feb 1, 2024
d3ef233
Separate ZWESECUR into each security product, and simplify zwe init s…
1000TurquoisePogs Feb 2, 2024
6308184
split zwekring into 9 parts, 3 for each esm. printing of jcl to not u…
1000TurquoisePogs Feb 2, 2024
593da2e
Fixes for getting gener to run if an init subcommand called directly,…
1000TurquoisePogs Feb 5, 2024
04dca12
Fix missing quote in the shell zos-jes
1000TurquoisePogs Feb 5, 2024
9273fed
Fix quote syntax error
1000TurquoisePogs Feb 5, 2024
7b91d8a
Fix wait for job and submit job hanging
1000TurquoisePogs Feb 5, 2024
276a4cf
bugfix vsam, simplify stc, and bugfix stc rename if same name
1000TurquoisePogs Feb 6, 2024
db6a809
Added setting zowe.setup.vsam.name to automated tests
1000TurquoisePogs Feb 7, 2024
2645607
Fix extra . present in some jcl after templating. make zwegen00 not c…
1000TurquoisePogs Feb 7, 2024
65c7035
Switch to tso version of is_data_set_exists
1000TurquoisePogs Feb 7, 2024
bf6b470
Fix syntax error preventing build
1000TurquoisePogs Feb 7, 2024
92865d6
Fix line length on zweiapf
1000TurquoisePogs Feb 8, 2024
8c5240e
Split mvs task into 2 because usually authloadlib doesnt need to be c…
1000TurquoisePogs Feb 8, 2024
ced83b6
Reduce duplicate code in each init phase
1000TurquoisePogs Feb 8, 2024
7d14e05
fixed regression on finding jcllib and exiting on not
1000TurquoisePogs Feb 9, 2024
ce165e2
Add TS code from https://github.com/zowe/zowe-install-packaging/pull/…
1000TurquoisePogs Feb 9, 2024
74d6e64
remove shell code and prevent duplicate job logging in verbose mode
1000TurquoisePogs Feb 9, 2024
2f89815
Add TS version of zwe install
1000TurquoisePogs Feb 9, 2024
2965629
Revert install command for now while more testing is done
1000TurquoisePogs Feb 9, 2024
db44b8f
Do not rename members
1000TurquoisePogs Feb 12, 2024
088a21c
Split ZWENOKYR, fix bug on submitting right job for ZWEKRING replacem…
1000TurquoisePogs Feb 12, 2024
9b764d8
Fixes to bugs found by @Martin-Zeithaml
1000TurquoisePogs Feb 12, 2024
10cdfc4
Fix bug in init stc where it said ZWE**S**ISTC accidentally. Fix stri…
1000TurquoisePogs Feb 12, 2024
2536cd9
Simplify init certificate shell code by removing certificate/keyring-…
1000TurquoisePogs Feb 12, 2024
25e9864
Fix bug in keyring generation where commonname fields were not substi…
1000TurquoisePogs Feb 12, 2024
96b52de
Added EXEC statement
Martin-Zeithaml Feb 13, 2024
72a49c1
RACF specific JCL
Martin-Zeithaml Feb 13, 2024
b66ed56
Remove extra periods '.' in various JCL. Add quotes around runtime di…
1000TurquoisePogs Feb 13, 2024
6003c49
Add in node and java DETECT code from init ts PR to avoid schema errors
1000TurquoisePogs Feb 13, 2024
2ef27ea
Allow remover jcls to continue execution even if bad rc, because we d…
1000TurquoisePogs Feb 13, 2024
bfd8f6a
Valid DSN example
Martin-Zeithaml Feb 20, 2024
7a72b63
Schema validations: datasets
Martin-Zeithaml Feb 21, 2024
cdd56ea
Split zowe class creation out of the security jcls because its not ne…
1000TurquoisePogs Feb 21, 2024
5422ff2
Fix error descriptions. Fix gener not checking for if config has righ…
1000TurquoisePogs Feb 21, 2024
50aca02
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Feb 21, 2024
4adf4a5
Fix wrong variable name
1000TurquoisePogs Feb 21, 2024
aae7ba8
dry run comes in 2 variable flavors, make sure both are accounted for
1000TurquoisePogs Feb 21, 2024
f284db5
Remove duplicate end message
1000TurquoisePogs Feb 21, 2024
e62c122
Fix generate handling of multiple input files
1000TurquoisePogs Feb 21, 2024
2e32df3
Add missing stringlib import
1000TurquoisePogs Feb 21, 2024
fdf6cfe
escapeDollar already in copyMvsToUss
Martin-Zeithaml Feb 22, 2024
17bf2df
Temporary hack to get logs on test system for bug fixing elsewhere
1000TurquoisePogs Feb 22, 2024
f59c01e
Exit before first procedures
Martin-Zeithaml Feb 26, 2024
08c398a
SET in in-stream
Martin-Zeithaml Feb 26, 2024
e728717
Copy executables with flag -X
Martin-Zeithaml Feb 26, 2024
bd46246
Make room for the longest posible dsn
Martin-Zeithaml Feb 28, 2024
017d4ac
Handle $ in DSN or runtime path
Martin-Zeithaml Feb 29, 2024
a4ffe30
Init MVS prints JCL and enhanced trace
Martin-Zeithaml Feb 29, 2024
52eea1c
Simplify JCL prinitng, isVsamDatasetExists bug
Martin-Zeithaml Feb 29, 2024
c8b54b5
Create INSTALLATION.md
1000TurquoisePogs Feb 29, 2024
3661121
Update README.md for pointing to installation doc
1000TurquoisePogs Feb 29, 2024
3cf1a1a
Update README.md
1000TurquoisePogs Feb 29, 2024
116d513
Update INSTALLATION.md formatting
1000TurquoisePogs Feb 29, 2024
345ae31
Update INSTALLATION.md for formatting
1000TurquoisePogs Feb 29, 2024
c927de9
Update INSTALLATION.md datasets -> dataset typo
1000TurquoisePogs Feb 29, 2024
2bce6ff
Update INSTALLATION.md with links
1000TurquoisePogs Feb 29, 2024
af6709d
Update INSTALLATION.md
1000TurquoisePogs Feb 29, 2024
693c5ca
Update INSTALLATION.md with disclaimer
1000TurquoisePogs Feb 29, 2024
262da5a
Add new, hacky approach to getting log file to be readable by setting…
1000TurquoisePogs Mar 8, 2024
3c820fc
Update manifest.json.template
1000TurquoisePogs Mar 8, 2024
081afc0
Change node and java detect behavior when empty in zowe.yaml
1000TurquoisePogs Mar 11, 2024
90374cd
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Mar 11, 2024
51f03f1
Fix syntax error on json and filename error in certificates
1000TurquoisePogs Mar 11, 2024
5551e5d
Update ZWEIAPF to handle sms vs volume modes
1000TurquoisePogs Mar 11, 2024
79defd1
Update INSTALLATION.md
1000TurquoisePogs Mar 12, 2024
e1cd402
Update INSTALLATION.md
1000TurquoisePogs Mar 12, 2024
a48611b
Update INSTALLATION.md
1000TurquoisePogs Mar 12, 2024
50cae0d
isDatasetSmsManaged: check the correct flag
Martin-Zeithaml Mar 14, 2024
6d671bf
Update zos-dataset.ts
1000TurquoisePogs Mar 14, 2024
b62e3d2
cat DSN with dollar sign
Martin-Zeithaml Mar 15, 2024
5c582fa
Fix mixed up pluginlib ref
1000TurquoisePogs Mar 15, 2024
af6a5a2
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs Mar 15, 2024
3b5221d
Attempt to work-around test failures where existing dataset is not seen
1000TurquoisePogs Mar 18, 2024
f9eb3c9
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Mar 18, 2024
e0ccc21
Typos
Martin-Zeithaml Mar 19, 2024
ec40fa7
Sleep bug
Martin-Zeithaml Mar 19, 2024
2188d7d
Fix the SMP/e build (#3748)
MarkAckert Mar 19, 2024
8d3aa02
Re-test with os.sleep if fixed
1000TurquoisePogs Mar 20, 2024
f1955c9
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs Mar 21, 2024
e760e47
Split init steps on playbook to help troubleshoot
1000TurquoisePogs Mar 21, 2024
041d316
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Mar 21, 2024
41cea5a
Fix tsoIsDatasetExists use
1000TurquoisePogs Mar 22, 2024
9281230
Fixed nokyr extra }
1000TurquoisePogs Mar 22, 2024
f965d41
Add JCL for doing init apfauth action the same way as was done in v2
1000TurquoisePogs Mar 22, 2024
3cb4062
Cleanup sleep and existence logic now that sleep bug fixed
1000TurquoisePogs Mar 22, 2024
12a2459
Fix ZWEIRMVS running due to typo. Fix pds listing print out in existe…
1000TurquoisePogs Mar 25, 2024
f0824be
Do not touch szweauth in init
1000TurquoisePogs Mar 26, 2024
bb7958c
Fix that the testbed was not setting loadlib propertly
1000TurquoisePogs Mar 26, 2024
6160126
Use new launcher build
1000TurquoisePogs Mar 27, 2024
a8d6dc3
Restore java and node and runtimedir setup in zwe init. Switch back t…
1000TurquoisePogs Mar 27, 2024
a0ef3ab
Move home and runtime update logic into common function to run in bot…
1000TurquoisePogs Mar 27, 2024
2fe99e9
Use 2.15.0 apiml since saw staging errors in test
1000TurquoisePogs Mar 28, 2024
2c3c381
replace null with empty for env var strings
1000TurquoisePogs Mar 28, 2024
fd656b4
Update example-zowe.yaml
1000TurquoisePogs Mar 28, 2024
db2a8da
Switch back to staging apiml and normal init
1000TurquoisePogs Mar 28, 2024
8e46952
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Mar 28, 2024
ad7b1b9
Take the rest as the second argument and change in hex
Martin-Zeithaml Apr 9, 2024
9354047
Add new line at the end
Martin-Zeithaml Apr 9, 2024
b6ffea9
Fix keyring tmp file use
1000TurquoisePogs Apr 9, 2024
bdeb9b8
Update with staging
1000TurquoisePogs Apr 9, 2024
597457c
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Apr 9, 2024
e38e877
Re-add updateZoweYamlFromObj removed in conflict resolution
1000TurquoisePogs Apr 9, 2024
6be8565
Trace or debug for zwe -> verbose in REXX
Martin-Zeithaml Apr 10, 2024
9126333
Update INSTALLATION.md
1000TurquoisePogs Apr 10, 2024
a2617d5
Deal with possible dollar sign in DSN
Martin-Zeithaml Apr 19, 2024
e6b4ee8
Change OneOf to separate pieces
Martin-Zeithaml Apr 19, 2024
4dcd997
Add HEAPPOOLS64(OFF)
1000TurquoisePogs Apr 19, 2024
72ad7f6
Merge branch 'feature/v3/jcl' of github.com:zowe/zowe-install-packagi…
1000TurquoisePogs Apr 19, 2024
6e29cbb
Split init up again for testing
1000TurquoisePogs Apr 19, 2024
d7b5a33
Fixed "name" -> "file" in certificate section
1000TurquoisePogs May 2, 2024
83b6b42
Update INSTALLATION.md
1000TurquoisePogs May 2, 2024
db8e85d
Fix bug where cert was self-signed due to incorrect name
1000TurquoisePogs May 7, 2024
e8ce84e
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs May 7, 2024
149f324
Fixed that the tests for keyring were not specifying values
1000TurquoisePogs May 7, 2024
ab669e0
Fix keyring -> keystore naming in the test file
1000TurquoisePogs May 7, 2024
cd8057c
Simplify detection of zosmf flag and update incorrect jcl info on ver…
1000TurquoisePogs May 8, 2024
240393b
Update SMPMCS.txt
1000TurquoisePogs May 8, 2024
319bacb
set config for zwe init (useconfigmgr?)
MarkAckert May 10, 2024
bb10e99
Support runing gener if zweimvs is not found, such as in pre-existing…
1000TurquoisePogs May 14, 2024
f4f1d31
cat datasets with dollar sign
Martin-Zeithaml May 14, 2024
c3f1fca
VSAM help update
Martin-Zeithaml May 14, 2024
3c97836
Use defaults.yaml, a reduction of example-zowe.yaml, to have the righ…
1000TurquoisePogs May 15, 2024
bbe30a5
Comment out sysMessages items in defaults.yaml
Martin-Zeithaml May 15, 2024
7c7977d
Remove arrays that are unique
1000TurquoisePogs May 16, 2024
cf70fe4
Validate ZIS Parmlib member as ZWESIPnn
Martin-Zeithaml May 16, 2024
2db1e9e
Minor JCL changes
Martin-Zeithaml May 16, 2024
8aa1056
Adding zwe internal config output as a way to have zwe init certifica…
1000TurquoisePogs May 21, 2024
ba2f480
Remove unused function arguments
1000TurquoisePogs May 21, 2024
cac1dc2
Create temp folder that is used in output command
1000TurquoisePogs May 21, 2024
dfc9092
Error if dataset/member does not exist
Martin-Zeithaml May 21, 2024
0ec2829
Store and restore the config path after using merged yaml
1000TurquoisePogs May 21, 2024
adb8577
Use templates in defaults.yaml to avoid combining certificate scenari…
1000TurquoisePogs May 22, 2024
e33830b
Swap null for undefined. Assumed schema would tolerate null but did not.
1000TurquoisePogs May 22, 2024
ea9f8ab
Combine assignment of pkcs12 and dname objects into single statement
1000TurquoisePogs May 22, 2024
a47703f
Safe cp for datasets with dollar sign
Martin-Zeithaml May 23, 2024
88eebe0
Revert to null approach for zowe.setup.certificate. allow null in sch…
1000TurquoisePogs May 23, 2024
eb02d0b
Fixed keyring yaml write to temp file, and run certificate init throu…
1000TurquoisePogs May 24, 2024
59dcb03
Minor help update
Martin-Zeithaml May 24, 2024
8334e19
Split possible long RACF statement
Martin-Zeithaml May 27, 2024
b753b91
Remove error about needing configmgr set for init actions. It is not …
1000TurquoisePogs May 28, 2024
2b8cbac
Allow zwe init mvs to modify ZWEIMVS if zis parmlib member name is no…
1000TurquoisePogs May 28, 2024
e983af0
Allow zowe.setup.vsam.name to be empty by defaulting to the caching s…
1000TurquoisePogs May 28, 2024
8de84b3
Fix JSON syntax
1000TurquoisePogs May 28, 2024
6dc6766
Add defaults.yaml to ZWEGENER
1000TurquoisePogs May 28, 2024
0711755
Updated init help, dry run flag name, error message ids, and removed …
1000TurquoisePogs May 30, 2024
bfea339
Stop infinite loop
Martin-Zeithaml Jun 3, 2024
b80aed5
Check length of substitution
Martin-Zeithaml Jun 4, 2024
0e2670e
Check for undefined
Martin-Zeithaml Jun 4, 2024
bc5de91
Remove traling spaces
Martin-Zeithaml Jun 4, 2024
3112e35
Fix IEBCOPY SELECT MEMBER statement
Martin-Zeithaml Jun 5, 2024
27ae846
Update manifest.json.template
1000TurquoisePogs Jun 5, 2024
29d19b8
Respect --dry-run for init generate
Martin-Zeithaml Jun 6, 2024
60c0d51
ISREDIT change limitation
Martin-Zeithaml Jun 7, 2024
c6b4173
Variable name typo
Martin-Zeithaml Jun 10, 2024
d665b33
change with propres apostrophes
Martin-Zeithaml Jun 12, 2024
3ea37c1
Small update of errors
Martin-Zeithaml Jun 14, 2024
e256237
Message with proper name
Martin-Zeithaml Jun 14, 2024
875d672
Minor help update
Martin-Zeithaml Jun 20, 2024
5335edb
Missing generate parameters
Martin-Zeithaml Jun 20, 2024
cc76862
MD yaml syntax
Martin-Zeithaml Jun 20, 2024
5dd2c91
RLM -> RLS
Martin-Zeithaml Jun 21, 2024
e0dcada
Space added
Martin-Zeithaml Jun 21, 2024
3e5d5f0
Compare realpath and escape dollar
Martin-Zeithaml Jun 21, 2024
e8e776a
Minor text updates
Martin-Zeithaml Jun 21, 2024
aaf66be
Info for user
Martin-Zeithaml Jun 24, 2024
716caf1
ZWE variable typo
Martin-Zeithaml Jun 25, 2024
9188de0
ZWEGEN00 split CONFIG entry over multiple lines (#3873)
1000TurquoisePogs Jun 26, 2024
e47fa35
Fix defaults.yaml not loading due to incorrect substr
1000TurquoisePogs Jun 26, 2024
e6e9694
Remove defaults.yaml from ZWEGENER
1000TurquoisePogs Jun 26, 2024
bbb3272
Fix stc existence check only checking last one
1000TurquoisePogs Jun 26, 2024
4cf6e9d
ZWEGEN00: verify the operation and verbosity (#3745)
Martin-Zeithaml Jun 27, 2024
f77b238
Fixes from review
1000TurquoisePogs Jun 27, 2024
c327287
Minor changes
Martin-Zeithaml Jun 27, 2024
ed3b340
Clarification on help doc
1000TurquoisePogs Jun 27, 2024
cfa2a2a
Add back init_missing_yaml_properties for init mvs
1000TurquoisePogs Jun 27, 2024
c79d7d8
Fix typos on help and env name
1000TurquoisePogs Jun 27, 2024
907bc70
Typo
Martin-Zeithaml Jul 1, 2024
3650dd0
Incorrect variable name for getting original config
1000TurquoisePogs Jul 1, 2024
ca22e45
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs Jul 1, 2024
699667f
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs Jul 2, 2024
004088f
Update defaults.yaml
1000TurquoisePogs Jul 2, 2024
2bb8121
Merge branch 'v2.x/staging' into feature/v3/jcl
1000TurquoisePogs Jul 2, 2024
c7bdbd3
Copy check
Martin-Zeithaml Aug 6, 2024
3346ac5
Certificate type details
Martin-Zeithaml Aug 9, 2024
2e7b46a
Schema update
Martin-Zeithaml Aug 9, 2024
9c3c036
Install update
Martin-Zeithaml Aug 9, 2024
7653681
Merge branch 'v2.x/staging' into feature/v3/jcl
Martin-Zeithaml Aug 12, 2024
1352976
Include zss changes
Martin-Zeithaml Aug 12, 2024
29b9e37
Catch possible yaml error
Martin-Zeithaml Aug 23, 2024
1a55ec6
add --generate flag, update ZWECONF config step to always generate
MarkAckert Aug 29, 2024
9df5f67
Set _auto_ for TSS (detect CA)
Martin-Zeithaml Sep 4, 2024
161266d
safkeyring message update
Martin-Zeithaml Sep 10, 2024
8df3053
Install update
Martin-Zeithaml Sep 11, 2024
03f373b
Small security process enhancement
Martin-Zeithaml Sep 18, 2024
2451e93
Help update
Martin-Zeithaml Sep 18, 2024
fd77523
Updates for v3
1000TurquoisePogs Sep 25, 2024
84b342e
Update INSTALLATION.md
1000TurquoisePogs Sep 25, 2024
7ddeafc
Update INSTALLATION.md with details blocks
1000TurquoisePogs Sep 27, 2024
04b4d33
Bold collapsed sections
1000TurquoisePogs Sep 27, 2024
bd47e6a
Merge branch 'v2.x/staging' into feature/v3/jcl
Martin-Zeithaml Oct 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Create INSTALLATION.md
Signed-off-by: 1000TurquoisePogs <sgrady@rocketsoftware.com>
1000TurquoisePogs authored Feb 29, 2024
commit c8b54b5925dda0afcd367dc029c25ee25bc35cd9
230 changes: 230 additions & 0 deletions INSTALLATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
# Installing Zowe Server Components on z/OS

Within the Zowe project, there exists several components for both client and server, z/OS and PC.
Among them are the Zowe servers; Software that is run usually on z/OS, though some of these servers may also be capable of running in linux environment such as in containers.

This document covers installation and configuration of Zowe's core server components on z/OS.

Table of contents:

1. [Concepts](#concepts)
1. [Installation Concepts](#installation-concepts)
2. [Configuration Concepts](#configuration-concepts)
2. [Distribution](#distribution)
3. [Installation of Runtime](#installation-of-runtime)
1. [SMPE or PSWI](#smpe-or-pswi)
2. [PAX](#pax)
4. [Configuration of Instance](#configuration-of-instance)
1. [Configuration by JCL](#configuration-by-jcl)
1. [Core Tasks](#core-tasks)
2. [Keyring Tasks](#keyring-tasks)
3. [(Optional) Caching Service VSAM Task](#optional-caching-service-vsam-task)
3. [Configuration by zwe](#configuration-by-zwe)
1. [Keystore or Keyring Configuration](#keystore-or-keyring-configuration)
2. [(Optional) Caching Service VSAM Configuration](#optional-caching-service-vsam-configuration)
5. [References](#references)


## Concepts

Familiarize yourself with these core concepts of the Zowe servers, which are referenced during installation and configuration.

### Installation Concepts
Runtime: The read-only content that comprises a version of Zowe.

Instance: A collection of configuration and persistent data for Zowe that uses a particular Runtime.

HA Instance: An optional subset of an Instance which varies its configuration for redundant copies of Zowe components across one or more LPARs for high avilability and fault tolerance.

Component: A unit of software that is managed by Zowe's launcher and has a folder structure that allows Zowe's tools to manage it. Components may contain a webserver or an extension to another component.

Extension: A component which is not part of the Zowe core server Components. This could be an extension from the Zowe project, or from a 3rd party. Extensions do not exist in the Runtime directory. They are instead linked to Zowe via the Extension directory.

Keystore: Zowe has several HTTPS servers which require certificates to function. You can store these certificates in a Keyring, or in a ZFS Keystore directory in the form of PKCS12 files.

### Configuration Concepts
Zowe YAML File: Each Instance is configured by a YAML document composed of one or more unix file or PDSE member. This can be as simple as a "zowe.yaml" unix file, or ZWEYAML parmlib member, or advanced configuration can ba accomplished by splitting configuration across multiple such files. This allows for defaults and customizations, splitting the configuration by administrative duty, or even splitting the configuration by core configuration versus extension configuration.

Schema: The YAML file is backed by a Schema, found within `runtimeDirectory/schemas`. Whenever Zowe starts up, or when most `zwe` commands are used, Zowe will check that the YAML file is valid before executing the requested operation, to reduce chance of misconfiguration. The schema also details advanced configuration parameters that may not be needed in basic installs.

Configuration Templates: Each YAML file can contain values that have templates within in the form of `${{ item }}` where the item within can be a reference to another property in the YAML, an environment variable, system symbol, or even simple conditional logic of them. This allows you to have configuration that works across multiple systems, such as by tying a hostname to `${{ zos.resolveSymbol(&SYSNAME) }}` to have the value be whatever the SYSNAME symbol is on a given LPAR.
Workspace: Each Instance has an area where Components can store data to persist across Zowe restarts or IPLs. Runtime state should instead be stored in the Caching Service component if high availability and fault tolerance is a concern, whereas the workspace instead covers items like user preferences.

## Distribution

The Zowe server components are distributed in multiple forms, such as SMPE, PSWI, and even PAX archive. You can find Zowe's official distributions at zowe.org

## Installation of Runtime

The following covers installation when not using the Zowe Server Install Wizard. When using that instead, please refer to the prompts within it instead of this guide.

### SMPE or PSWI
1. When you install Zowe via SMPE or PSWI, the Runtime directory and datasets will be populated.
2. Navigate to the Runtime Directory and copy the `example-zowe.yaml` file to a location outside this folder, generally wherever you want to put the Zowe Instance.
3. Edit the YAML copy to set the values of "zowe.runtimeDirectory", "java.home", "node.home", and "zowe.setup.datasets", as follows
1. zowe.runtimeDirectory: The location you extracted the PAX to.
2. java.home: The location of the Java that will be used when installing & running Zowe. For example, if your java is located at /usr/lpp/java/J8.0_64/bin/java, then the java.home is /usr/lpp/java/J8.0_64
3. node.home: The location of the NodeJS that will be used when installing & running ZOwe. For example, if your node is located at /usr/lpp/node/v18/bin/node, then the java.home is /usr/lpp/node/v18
4. zowe.setup.datasets: This section defines where both Runtime and Instance datasets of Zowe will be created.


### PAX
1. Extract the PAX on some ZFS partition on z/OS. At least 1200MB of free space is required. (For example, `pax -ppx -rf zowe.pax`). The location you extract to is the "Runtime Directory"
2. Navigate to the Runtime Directory and copy the `example-zowe.yaml` file to a location outside this folder, generally wherever you want to put the Zowe Instance.
3. Edit the YAML copy to set the values of `zowe.runtimeDirectory`, `java.home`, `node.home`, and `zowe.setup.datasets`, as follows
1. `zowe.runtimeDirectory`: The location you extracted the PAX to.
2. `java.home`: The location of the Java that will be used when installing & running Zowe. For example, if your java is located at /usr/lpp/java/J8.0_64/bin/java, then the java.home is /usr/lpp/java/J8.0_64
3. `node.home`: The location of the NodeJS that will be used when installing & running ZOwe. For example, if your node is located at /usr/lpp/node/v18/bin/node, then the java.home is /usr/lpp/node/v18
4. `zowe.setup.datasets`: This section defines where both Runtime and Instance datasets of Zowe will be created.
5. Navigate to the `/bin` folder of the extracted location
6. Run `./zwe install -c /path/to/zowe.yaml`. This creates the Runtime datasets for the Zowe release.



## Configuration of Instance

The following covers configuration when not using the Zowe Server Install Wizard. When using that instead, please refer to the prompts within it instead of this guide.
Aside from the Zowe Server Install Wizard, there are three other ways to configure a Zowe Instance.
1. JCL samples: The Zowe Runtime dataset SZWESAMP contains templates of JCL that must be substituted with Zowe YAML parameters before executed. That can be done manually, or automatically via editing and submitting the job ZWEGENER, which will place resolved JCL into the PDSE defined at `zowe.setup.datasets.jcllib`
2. zwe operations: `zwe` is a Unix CLI program that has commands which will automate the execution of the JCL samples.
3. z/OSMF workflow: The z/OSMF workflows will prompt you for Zowe YAML parameters before submitting jobs equivalent to the actions seen in the JCL samples.


### Configuration by JCL
The Zowe Runtime Dataset SZWESAMP contains JCL samples that have templates referencing Zowe YAML parameters.
They cannot be submitted without modification as a result.

It is recommended to edit and submit the job SZWESAMP(ZWEGENER) which will validate the contents of your Zowe YAML before resolving the JCL templates and placing the resulting JCL into a separate PDSE created during installation, located at the value of `zowe.setup.datasets.jcllib`.

When the JCL is prepared, the following jobs can be submitted to perform the following Instance configuration actions:

#### Core Tasks
|Task|Description|Sample JCL|
|---|---|---|
|Create Instance Datasets|Creates datasets for holding PARMLIB content and non-ZFS Extension content that is particular to one Zowe instance|ZWEIMVS|
|APF Authorize privileged content|Zowe contains one privileged component, ZIS, which enables the security model by which the majority of Zowe is unprivileged and in key 8. The load library for the ZIS component (SZWEAUTH, or customized via YAML value `zowe.setup.dataset.authLoadlib`) and its extension library (The value value `zowe.setup.dataset.authPluginLib`) must be set APF authorized and run in key 4 to use ZIS and components that depend upon it|ZWEIAPF|
|Grant SAF permissions|The STC accounts for Zowe need permissions for operating servers, and users need permissions for interacting with the servers.|RACF: ZWEIRAC<br><br>TSS: ZWEITSS<br><br>ACF2: ZWEIACF|
|(z/OS v2.4 ONLY) Create Zowe SAF Resource Class|This is not needed on z/OS v2.5+. On z/OS v2.4, the SAF resource class for Zowe is not included, and must be created|RACF: ZWEIRACZ<br><br>TSS: ZWEITSSZ<br><br>ACF2: ZWEIACFZ|
|Copy STC JCL to PROCLIB|The jobs for starting the Zowe webservers, ZWESLSTC, and the Zowe APF authorized cross-memory server, ZWESISTC, and its auxiliary address space, ZWESASTC, must be copied to the desired proclib for running. The YAML value `zowe.setup.dataset.proclib` defines where these members will be placed. The names of the members can be customized with YAML value `zowe.setup.security.stcs`|ZWEISTC|


#### Keyring Tasks

**Certificate requirements**: Zowe's keyring must have the following
* Private key & certificate pair: The Zowe Servers will use this certificate, and it must either not have the "Extended Key Usage" attribute, or have it with both "Server Authorization" and "Client Authorization" values.
* Certificate Authorities: Every intermediate and root Certificate Authority (CA) Zowe interacts with must be within the Keyring, unless the YAML value `zowe.verifyCertificates` is set to `DISABLED`. CAs that must be within the keyring include z/OSMF's CAs if using z/OSMF, and Zowe's own certificate's CAs as Zowe servers must be able to verify each other.

There are 4 options for setting up keyrings: Three scenarios covered by JCL samples where a keyring is created for you, or a fourth where you can bring your own keyring.

|Keyring Setup Type|Description|Sample JCL|
|---|---|---|
|1|Zowe will create a keyring and populate it with a newly generated certificate and certificate authority. The certificate would be seen as "self-signed" by clients unless import of the CA to clients is performed|RACF:ZWEIKRR1<br><br>TSS:ZWEIKRT1<br><br>ACF2:ZWEIKRA1|
|2|Zowe will create a keyring and populate it by connecting pre-existing certificates and CAs that you specify.|RACF:ZWEIKRR2<br><br>TSS:ZWEIKRT2<br><br>ACF2:ZWEIKRA2|
|3|Zowe will create a keyring and populate it by importing PKCS12 content from a dataset that you specify.|RACF:ZWEIKRR3<br><br>TSS:ZWEIKRT3<br><br>ACF2:ZWEIKRA3|

Alternatively, zowe can use a keyring provided by you as long as the contents meet Zowe's requirements and configure YAML values within `zowe.certificate` as follows:
```yaml
zowe:
certificate:
keystore:
type: JCERACFKS
name: "safkeyring://<STC Account Name>/<Ring Name>"
alias: "<Name of your certificate>"
password: "password" #literally "password". keyrings do not use passwords, so this is a placeholder.
truststore:
type: JCERACFKS
name: "safkeyring://<STC Account Name>/<Ring Name>"
password: "password" #literally "password". keyrings do not use passwords, so this is a placeholder.
```

#### (Optional) Caching Service VSAM Task:
If you plan to use the Zowe caching service Component, such as for high availability and fault tolerance reasons, then you must choose a form of database for it to use.
Among the choices is for it to use a VSAM dataset of your choice.

|Task|Description|Sample JCL|
|---|---|---|
|Create VSAM Dataset for Caching Service|Creates a RLM or NONRLM dataset for the caching service using the YAML values in `zowe.setup.vsam`|ZWECSVSM|

JCL samples for removing Zowe configuration also exist.
|Action|Sample|
|---|---|
|Remove Instance Datasets|ZWERMVS|
|Remove SAF Permissions|ZWENOSEC|
|Remove Keyring|ZWENOKR|
|Remove Caching Service VSAM Dataset|ZWECSRVS|

### Configuration by zwe

`zwe` is a unix tool located in the `<Runtime Directory>/bin` directory of Zowe.
If you type `zwe init --help`, you will see each configuration command that is available.
Each command reads configuration properties from the Zowe YAML files, and combines that with the JCL samples from the SZWESAMP dataset.
The commands resolve the JCL sample templates into usable JCL within the dataset defined by YAML value `zowe.setup.dataset.jcllib`.
Before each command runs, it will pritn the JCL that it is submitting.

Every `zwe init` command also has a `--dry-run` option which validates the configuration, prints the JCL, but does not submit it.
This allows you to review the actions before performing them with the appropriate administrator.

The following commands can be run to set up a Zowe Instance via `zwe`

|Task|Description|Command|
|Create Instance Datasets|Creates datasets for holding PARMLIB content and non-ZFS Extension content that is particular to one Zowe instance|`zwe init mvs`|
|APF Authorize privileged content|Zowe contains one privileged component, ZIS, which enables the security model by which the majority of Zowe is unprivileged and in key 8. The load library for the ZIS component (SZWEAUTH, or customized via YAML value `zowe.setup.dataset.authLoadlib`) and its extension library (The value value `zowe.setup.dataset.authPluginLib`) must be set APF authorized and run in key 4 to use ZIS and components that depend upon it|`zwe init apfauth`|
|Grant SAF permissions|The STC accounts for Zowe need permissions for operating servers, and users need permissions for interacting with the servers.|`zwe init security`|
|Copy STC JCL to PROCLIB|The jobs for starting the Zowe webservers, ZWESLSTC, and the Zowe APF authorized cross-memory server, ZWESISTC, and its auxiliary address space, ZWESASTC, must be copied to the desired proclib for running. The YAML value `zowe.setup.dataset.proclib` defines where these members will be placed. The names of the members can be customized with YAML value `zowe.setup.security.stcs`|`zwe init stc`|


#### Keystore or Keyring Configuration

**Certificate requirements**: Zowe's keystore or keyring must have the following
* Private key & certificate pair: The Zowe Servers will use this certificate, and it must either not have the "Extended Key Usage" attribute, or have it with both "Server Authorization" and "Client Authorization" values.
* Certificate Authorities: Every intermediate and root Certificate Authority (CA) Zowe interacts with must be within the Keyring, unless the YAML value `zowe.verifyCertificates` is set to `DISABLED`. CAs that must be within the keyring include z/OSMF's CAs if using z/OSMF, and Zowe's own certificate's CAs as Zowe servers must be able to verify each other.

There are 6 scenarios for setting up certificates for Zowe to use. There are five scenarios in the YAML to have Zowe create a ZFS PKCS12 keystore, or z/OS keyring, and an additional sixth option to bring your own keyring.

To have Zowe create a keystore or keyring for you, run `zwe init certificate` for one of the options below.
|Certificate scenario|Description|
|---|---|
|1|Zowe will create a ZFS keystore and populate it with newly generated PKCS12 certificate and certificate authority files. The certificate would be seen as "self-signed" by clients unless import of the CA to clients is performed|
|2|Zowe will create a ZFS keystore and populate it with PKCS12 certificate and certificate authority content that you provide.|
|3|Zowe will create a keyring and populate it with a newly generated certificate and certificate authority. The certificate would be seen as "self-signed" by clients unless import of the CA to clients is performed|
|4|Zowe will create a keyring and populate it by connecting pre-existing certificates and CAs that you specify.|
|5|Zowe will create a keyring and populate it by importing PKCS12 content from a dataset that you specify.|

Alternatively, zowe can use a keyring provided by you as long as the contents meet Zowe's requirements and configure YAML values within `zowe.certificate` as follows:
```yaml
zowe:
certificate:
keystore:
type: JCERACFKS
name: "safkeyring://<STC Account Name>/<Ring Name>"
alias: "<Name of your certificate>"
password: "password" #literally "password". keyrings do not use passwords, so this is a placeholder.
truststore:
type: JCERACFKS
name: "safkeyring://<STC Account Name>/<Ring Name>"
password: "password" #literally "password". keyrings do not use passwords, so this is a placeholder.
```

(Optional) Caching Service VSAM Configuration:
If you plan to use the Zowe caching service Component, such as for high availability and fault tolerance reasons, then you must choose a form of database for it to use.
Among the choices is for it to use a VSAM dataset of your choice.

|Task|Description|Sample JCL|
|---|---|---|
|Create VSAM Dataset for Caching Service|Creates a RLM or NONRLM dataset for the caching service using the YAML values in `zowe.setup.vsam`|`zwe init vsam`|



## References

To learn about the requirements and prerequisites of Zowe, review https://docs.zowe.org/stable/user-guide/systemrequirements-zos

To learn more about YAML and how Zowe uses it, review https://docs.zowe.org/stable/appendix/zowe-yaml-configuration

To learn more about advanced YAML configuration, review https://docs.zowe.org/stable/user-guide/configmgr-using/

To learn more about certificates, review https://docs.zowe.org/stable/user-guide/configure-certificates

To learn more about which SAF resources Zowe and its users need, review https://docs.zowe.org/stable/user-guide/assign-security-permissions-to-users

To learn more about using z/OSMF workflows for setup, review https://docs.zowe.org/stable/user-guide/zosmf-install