Installing ZOWE-CLI on FreeBSD 13.2-RELEASE

Here's my modest unofficial contribution to successfully getting started using ZOWE-CLI on a FreeBSD 13.2-RELEASE.
Zowe™ is an open source software which provides both an extensible framework, and a set of tools that allow mainframe development and operation teams to securely manage, develop, and automate resources and services on z/OS family mainframes.

I'd summarize by saying upfront that I could successfully install and use it on a "bare-minimum" (out-of-the-box) FreeBSD 13.2-RELEASE installation, specially where no X11 is running. But on this scenario, unless you don't mind repeatedly entering your z/OS credentials at each command sent to the mainframe, it's necessary to declare your z/OS credentials in clear-text on a ZOWE-CLI configuration file. If the FreeBSD is running on a private virtual machine or jail dully hardened this may not be a security issue after all. On this simplest scenario, assuming that you'll be working on a directory called ~/mydir, all that's required to get started is:
Code:
# pkg install node npm
# npm -g install @zowe/cli@zowe-v2-lts
# chmod 755 /usr/local/lib/node_modules/@zowe/cli/lib/main.js
# mkdir ~/mydir
# cd ~/mydir
# zowe config init --user-config
# chmod 600 ~/mydir/zowe.config.user.json

Make sure that your initial ~/mydir/zowe.config.user.json contents is somewhat (adjust the values below as needed) like:
JSON:
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "zosmf": {
            "type": "zosmf",
            "properties": {
                "host": "XXX.XXX.XXX.XXX",
                "port": 10443,
                "rejectUnauthorized": false,
                "protocol": "https",
                "user": "ZXXXXX",
                "password": "XXXXXXXX"
            },
            "secure": []
        }
    },
    "defaults": {
        "zosmf": "zosmf"
    },
    "autoStore": false
}

Another scenario is if you already have X11 running. In this case you have the option to store the z/OS credentials on a keyring and I'll not argue if that's advantageous or not as I cannot anticipate every possible use-case requirements; but that's not my point here. I'd like just to show the steps that have worked for me in enabling that option on a FreeBSD desktop with X11. Again, assuming that you'll be working on a directory called ~/mydir, the recipe is:
Code:
# pkg install node npm rust cargo-generate pkgconf libsecret gnome-keyring
# npm -g install @zowe/cli@zowe-v2-lts
# npm -g install @napi-rs/cli
# npm -g install @zowe/secrets-for-zowe-sdk
# chmod 755 /usr/local/lib/node_modules/@zowe/cli/lib/main.js
# mkdir ~/mydir
# cd ~/mydir
# zowe config init --user-config
# chmod 600 ~/mydir/zowe.config.user.json

Make sure that your initial ~/mydir/zowe.config.user.json contents is somewhat (adjust the values below as needed) like:
JSON:
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "zosmf": {
            "type": "zosmf",
            "properties": {
                "host": "XXX.XXX.XXX.XXX",
                "port": 10443,
                "rejectUnauthorized": false,
                "protocol": "https"
            },
            "secure": []
        }
    },
    "defaults": {
        "zosmf": "zosmf"
    },
    "autoStore": true
}

Upon your first ZOWE-CLI command, perhaps
Code:
# zowe zos-files list data-set “ZXXXXX.*”
while being prompted for z/OS credentials at the command-line, a dialog box will appear super-imposed (just once on each new GUI session) asking for the encrypting password for a keyring (where the z/OS credentials will be stored). If you’re running on a private machine, a “blank password” (that is, no password) for the keyring may not be an issue (and may save you the annoyance of having to reenter it on each new GUI session). In case you’re under an SSH session, judging by being successful so far, I believe that the documentation for a headless access (Configuring Secure Credential Store on headless operating systems) should also work fine (although I haven’t had the need to verify this yet).

I hope to have mentioned every important detail.
That’s it, good luck.
🟩
 
Here's my modest unofficial contribution to successfully getting started using ZOWE-CLI on a FreeBSD 13.2-RELEASE.


I'd summarize by saying upfront that I could successfully install and use it on a "bare-minimum" (out-of-the-box) FreeBSD 13.2-RELEASE installation, specially where no X11 is running. But on this scenario, unless you don't mind repeatedly entering your z/OS credentials at each command sent to the mainframe, it's necessary to declare your z/OS credentials in clear-text on a ZOWE-CLI configuration file. If the FreeBSD is running on a private virtual machine or jail dully hardened this may not be a security issue after all. On this simplest scenario, assuming that you'll be working on a directory called ~/mydir, all that's required to get started is:
Code:
# pkg install node npm
# npm -g install @zowe/cli@zowe-v2-lts
# chmod 755 /usr/local/lib/node_modules/@zowe/cli/lib/main.js
# mkdir ~/mydir
# cd ~/mydir
# zowe config init --user-config
# chmod 600 ~/mydir/zowe.config.user.json

Make sure that your initial ~/mydir/zowe.config.user.json contents is somewhat (adjust the values below as needed) like:
JSON:
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "zosmf": {
            "type": "zosmf",
            "properties": {
                "host": "XXX.XXX.XXX.XXX",
                "port": 10443,
                "rejectUnauthorized": false,
                "protocol": "https",
                "user": "ZXXXXX",
                "password": "XXXXXXXX"
            },
            "secure": []
        }
    },
    "defaults": {
        "zosmf": "zosmf"
    },
    "autoStore": false
}

Another scenario is if you already have X11 running. In this case you have the option to store the z/OS credentials on a keyring and I'll not argue if that's advantageous or not as I cannot anticipate every possible use-case requirements; but that's not my point here. I'd like just to show the steps that have worked for me in enabling that option on a FreeBSD desktop with X11. Again, assuming that you'll be working on a directory called ~/mydir, the recipe is:
Code:
# pkg install node npm rust cargo-generate pkgconf libsecret gnome-keyring
# npm -g install @zowe/cli@zowe-v2-lts
# npm -g install @napi-rs/cli
# npm -g install @zowe/secrets-for-zowe-sdk
# chmod 755 /usr/local/lib/node_modules/@zowe/cli/lib/main.js
# mkdir ~/mydir
# cd ~/mydir
# zowe config init --user-config
# chmod 600 ~/mydir/zowe.config.user.json

Make sure that your initial ~/mydir/zowe.config.user.json contents is somewhat (adjust the values below as needed) like:
JSON:
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "zosmf": {
            "type": "zosmf",
            "properties": {
                "host": "XXX.XXX.XXX.XXX",
                "port": 10443,
                "rejectUnauthorized": false,
                "protocol": "https"
            },
            "secure": []
        }
    },
    "defaults": {
        "zosmf": "zosmf"
    },
    "autoStore": true
}

Upon your first ZOWE-CLI command, perhaps
Code:
# zowe zos-files list data-set “ZXXXXX.*”
while being prompted for z/OS credentials at the command-line, a dialog box will appear super-imposed (just once on each new GUI session) asking for the encrypting password for a keyring (where the z/OS credentials will be stored). If you’re running on a private machine, a “blank password” (that is, no password) for the keyring may not be an issue (and may save you the annoyance of having to reenter it on each new GUI session). In case you’re under an SSH session, judging by being successful so far, I believe that the documentation for a headless access (Configuring Secure Credential Store on headless operating systems) should also work fine (although I haven’t had the need to verify this yet).

I hope to have mentioned every important detail.
That’s it, good luck.
🟩
I have noticed that usually the step
Code:
# chmod 755 /usr/local/lib/node_modules/@zowe/cli/lib/main.js
may not be necessary; but at least check it out, just in case.
 
Back
Top