Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.

LR2: SSPL Self Provisioning

mariyappanp edited this page Apr 19, 2021 · 86 revisions

[Deferred]

Please refer --> https://github.com/Seagate/cortx-monitor/wiki/Cortx-monitor-single-node-VM-provisioning-manual

Self Provisioning:


Onward LR2, SSPL can be deployed and initialized without hard dependencies like provisioner, consul, and HA.

Component: SSPL

Solution: LR2

Cortx version: 2

SSPL version: 2.0.0

Demo Link


Steps to deploy SSPL per node (1 or 3 Node deployment).

Pre-requisites:

  • Ensure below RPM dependencies are installed

    Package Version
    hdparm 9.43
    ipmitool 1.8.18
    lshw B.02.18
    python3 3.6.8
    python36-dbus 1.2.4
    python36-gobject 3.22.0
    python36-paramiko 2.1.1
    python36-psutil 5.6.7
    shadow-utils 4.6
    smartmontools 7.0
    systemd-python36 1.0.0
    udisks2 2.8.4
  • Ensure below PIP dependencies are installed

    Package Version
    cryptography 2.8
    jsonschema 3.2.0
    pika 1.1.0
    pyinotify 0.9.6
    python-daemon 2.2.4
    requests 2.25.1
    zope.component 4.6.2
    zope.event 4.5.0
    zope.interface 5.2.0
  • Ensure cortx-py-utils RPMs are installed.

  • Ensure SSPL rpms are installed.

Deploy and setup SSPL:

/opt/seagate/cortx/utils/bin/utils_setup post_install --config  [<global_config_url>]
/opt/seagate/cortx/sspl/bin/sspl_setup post_install --config  [<global_config_url>]

/opt/seagate/cortx/utils/bin/utils_setup config --config [<global_config_url>] 
/opt/seagate/cortx/sspl/bin/sspl_setup config --config [<global_config_url>] 

/opt/seagate/cortx/sspl/bin/sspl_setup init --config [<global_config_url>]

/opt/seagate/cortx/sspl/bin/sspl_setup check

Steps to deploy SSPL on Dev Machine (**Dev Purpose Only)

Pre-requisites:

Execute the following commands on your VM shell:


yum install -y rpm-build gcc openssl-devel graphviz python-pep8 python36-devel libffi-devel

CORTX_MONITOR_BASE_URL="https://raw.githubusercontent.com/Seagate/cortx-monitor/main" 

curl $CORTX_MONITOR_BASE_URL/low-level/files/opt/seagate/sspl/setup/sspl_dev_deploy -o sspl_dev_deploy

chmod a+x sspl_dev_deploy
./sspl_dev_deploy --cleanup

**Caution: Do not run this cleanup command in PROD or on any provisioned setup**

sspl_dev_deploy takes care of rabbitmq and SSPL RPMS installation and configuration. (Dev Purpose Only)


Refer argument usage for better understanding

./sspl_dev_deploy -h
usage: sspl_dev_deploy [-h] [-V PRODUCT_VERSION] [-A CNTRLR_A] [-B CNTRLR_B]
                       [-L LOCAL_RPMS_PATH] [-T TARGET_BUILD_URL]
                       [-Ap CNTRLR_A_PORT] [-Bp CNTRLR_B_PORT]
                       [-U CNTRLR_USER] [-P CNTRLR_PASS] [-i BMC_IP]
                       [-u BMC_USER] [-p BMC_PASSWD] [-Ru RMQ_USER]
                       [-Rp RMQ_PASSWD] [-St STORAGE_TYPE] [-Sr SERVER_TYPE]
                       [-N CLUSTER_NODES] [--standalone_installation]
                       [--setup_repo] [--cleanup]

SSPL prerequisite script. (Bounded to single node provisioning)

optional arguments:
  -h, --help            show this help message and exit
  -V PRODUCT_VERSION, --product_version PRODUCT_VERSION
                        Product version
  -A CNTRLR_A, --cntrlr_a CNTRLR_A
                        Controller-A IP
  -B CNTRLR_B, --cntrlr_b CNTRLR_B
                        Controller-B IP
  -L LOCAL_RPMS_PATH, --local_rpms_path LOCAL_RPMS_PATH
                        Local RPMS location
  -T TARGET_BUILD_URL, --target_build_url TARGET_BUILD_URL
                        Target build base url pointed to release bundle base
                        directory. if specified the following directory
                        structure is assumed: <base_url>/ centos7.7 <-- OS ISO
                        is mounted here 3rd_party <-- CORTX 3rd party ISO is
                        mounted here cortx_iso <-- CORTX ISO (main) is mounted
                        here
  -Ap CNTRLR_A_PORT, --cntrlr_a_port CNTRLR_A_PORT
                        Controller-A Port
  -Bp CNTRLR_B_PORT, --cntrlr_b_port CNTRLR_B_PORT
                        Controller-B Port
  -U CNTRLR_USER, --cntrlr_user CNTRLR_USER
                        Controller Username
  -P CNTRLR_PASS, --cntrlr_pass CNTRLR_PASS
                        Controller Password  (Encrypted)
  -i BMC_IP, --bmc_ip BMC_IP
                        BMC IP
  -u BMC_USER, --bmc_user BMC_USER
                        BMC User
  -p BMC_PASSWD, --bmc_passwd BMC_PASSWD
                        BMC Password         (Encrypted)
  -Ru RMQ_USER, --rmq_user RMQ_USER
                        Rabbitmq username
  -Rp RMQ_PASSWD, --rmq_passwd RMQ_PASSWD
                        Rabbitmq password    (Encrypted)
  -St STORAGE_TYPE, --storage_type STORAGE_TYPE
                        Storage type ie. jbod, rbod, 5u84, virtual
  -Sr SERVER_TYPE, --server_type SERVER_TYPE
                        Server type ie. physical, virtual
  -N CLUSTER_NODES, --cluster_nodes CLUSTER_NODES
                        Nodes separated by delimeter ',' ie. node1,node2
  --standalone_installation
                        Configure SSPL 3rd party dependencies like consul,
                        rabbitmq
  --setup_repo          Setup yum repos
  --cleanup             Stop sspl-ll and remove installed SSPL RPMs

STEP 1: Setup yum repos

Setup yum repo for local SSPL RPMS deployment

./sspl_dev_deploy --setup_repo

Setup yum repos for build specific deployment

./sspl_dev_deploy --setup_repo -T http://cortx-storage.colo.seagate.com/releases/cortx/github/main/centos-7.8.2003/<build_number>/prod/


For Example:

./sspl_dev_deploy --setup_repo -T http://cortx-storage.colo.seagate.com/releases/cortx/github/main/centos-7.8.2003/830/prod/

where 830 is the build number.


STEP 2: Install cortx-prereq rpm.

yum install -y <cortx-prereq rpm url>

You can find latest cortx_prereq rpm here: cortx-prereq rpm url

For Example:

yum install -y http://cortx-storage.colo.seagate.com/releases/cortx/github/main/centos-7.8.2003/last_successful/cortx-prereq-2.0.0-12_git81f775d_el7.x86_64.rpm

STEP 3: Generate SSPL RPMS (Optional)

Note: Follow these steps if you want to build and deploy local rpms.

yum install -y git rpm-build autoconf automake libtool check-devel doxygen
mkdir SSPL
cd SSPL
git clone [email protected]:Seagate/cortx-monitor.git
cd cortx-monitor
cat VERSION    --> This should be 2.0.0 if not, checkout to correct repo
./jenkins/build.sh
mkdir -p /root/MYRPMS
cp -R /root/rpmbuild/RPMS/noarch/cortx-sspl-* /root/rpmbuild/RPMS/x86_64/cortx-libsspl_sec-* /root/MYRPMS

STEP 4: Deploy SSPL RPMS and Setup SSPL

NOTE: Like LDR_R1, encrypt password for controller and rabbitmq using cluster_id and pass that encrpyted password in below command (-P -Rp ).

Deploy local SSPL RPMS

-L --> Local RPMS path, **** --> Encrypted password

./sspl_dev_deploy  -V LR2  -A 10.0.0.2  -B 10.0.0.3 \
-Ap 80  -Bp 80  -U manage  -P '****' \
-Ru sspluser  -Rp '****' \
-L /root/MYRPMS \
-St virtual  -Sr virtual  --standalone_installation ;

or

./sspl_dev_deploy -L /root/MYRPMS --standalone_installation ;


OR

Deploy SSPL RPMS from build.

In case the deployment is build specific, then build url must be passed.

-T --> Target build URL, **** --> Encrypted password

./sspl_dev_deploy  -V LR2  -A 10.0.0.2  -B 10.0.0.3 \
-Ap 80  -Bp 80  -U manage  -P '****' \
-Ru sspluser  -Rp '****' \
-T http://cortx-storage.colo.seagate.com/releases/cortx/github/main/centos-7.8.2003/<build_number>/prod/ \
-St virtual  -Sr virtual  --standalone_installation ;

STEP 5: Start SSPL Service

systemctl start sspl-ll
[[email protected] ~]#  systemctl status sspl-ll
● sspl-ll.service - SSPL Low Level Process
   Loaded: loaded (/etc/systemd/system/sspl-ll.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-01-29 00:00:24 MST; 5s ago
  Process: 28004 ExecStartPre=/usr/bin/chown sspl-ll:root /var/run/sspl_ll (code=exited, status=0/SUCCESS)
  Process: 28000 ExecStartPre=/usr/bin/mkdir -p /var/run/sspl_ll (code=exited, status=0/SUCCESS)
  Process: 27986 ExecStartPre=/opt/seagate/cortx/sspl/bin/sspl_setup check (code=exited, status=0/SUCCESS)
 Main PID: 28006 (sspl_ll_d)
   CGroup: /system.slice/sspl-ll.service
           └─28006 /usr/bin/python3.6 /usr/bin/sspl_ll_d


How to run sanity test for SSPL

/opt/seagate/cortx/sspl/bin/sspl_setup test --config [<global_config_url>] --plan [sanity|alerts|self_primary|self_secondary]

For Example:

 /opt/seagate/cortx/sspl/bin/sspl_setup test --config yaml:///opt/seagate/cortx/sspl/conf/sample_global_cortx_config.yaml --plan sanity

Test cases will be executed successfully only for enabled sensors, it depends on the platform type. Otherwise skipped.

Note: On VM, we can enable all tests by providing -St 5u84 and -Sr physical during sspl_dev_deploy execution. That will override config in /opt/seagate/cortx/sspl/conf/sample_global_cortx_config.yaml

For Example:

./sspl_dev_deploy  -V LR2  -A 10.0.0.2  -B 10.0.0.3 \
-Ap 80  -Bp 80  -U manage  -P '****' \
-Ru sspluser  -Rp '****' \
-L /root/MYRPMS \
-St 5u84  -Sr physical  --standalone_installation ;

How to enable DEBUG mode for SSPL

We can set SSPL log_level to DEBUG using ConfStore CLI.

# url=yaml:///etc/sspl.conf
# conf $url set "SYSTEM_INFORMATION>log_level=DEBUG"
# conf $url get "SYSTEM_INFORMATION>log_level"
["DEBUG"]

Alternatively, set log_level in /etc/sspl.conf. Once done, restart SSPL to see the impact on SSPL log.