Installing Sisense on Linux
  • 01 Dec 2022
  • 26 Minutes to read
  • Dark
    Light

Installing Sisense on Linux

  • Dark
    Light

Previous Step

To install Sisense:

  1. Backup the Sisense servers prior to installation, for rollback purposes.
  2. In Linux, create a sudo-enabled user account.A sudo-enabled user account is required for each server Sisense will be deployed on.

    sudo -l -U <installation user>

    Check to see user has the correct rights. The user must have the rights to run “ALL” as shown below:

    (ALL : ALL) NOPASSWD: ALL

    It is recommended you use a user that has a UID/GID of 1000. Run the following command to check that the user is assigned with a UID/GID of 1000:

    id -u  <installation user>
    If you need to use a user with a UID/GID other than 1000, see Installing RKE with a Specified User.

  3. Log in to an SSH session with the installation user you created.
  4. Navigate to the directory that you will install from.

      cd sisense-installation-files

  5. Sisense supports four types of deployment:
    • Single-node
    • Cluster (multi-node)
    • OpenShift
    • Cloud-based Kubernetes

    Contact your Sisense Customer Success Manager to receive the link to the latest Linux archive file. The archive includes five configuration files, one for each deployment type and a generic config.yaml file that contains all parameters for each deployment.

    Follow the instructions for your type of deployment in the relevant drop-down option below.

    Single Node Deployments on RKE

    Before you set up Sisense on your single Linux machine, you must mount /opt on a dedicated disk. For instructions on how to mount /opt, see Mounting on a Dedicated Disk for Sisense Single Nodes.

    Note:
    See Integrating Sisense with Portworx if your environment uses the Portworx platform for end-to-end storage and data management solution on the Kubernetes cluster.
    Note:
    Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. From Sisense Linux V8.2.1, Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.
    Note:
    If you are deploying Sisense on Red Hat Enterprise Linux 8.4, execute the following commands prior to running the Sisense installation:
    sudo systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
    sudo reboot
    You must reboot or the changes will not be applied. Thereafter, install Sisense as usual.

    Make sure you have enough disk space on the disk you mount. The disk must include 50GB + 2*(size of the ElasticCube data), with no less than 50GB.

    To initialize Sisense in a Linux environment:

    1. Using the sudo user you created, in the Linux CLI, enter the following command to download the Sisense tar.gz file.

      wget [sisense-linux-deployment-link]

    2. Extract the tar.gz file into the {sisense-version} folder:

      tar zxf [sisense-linux-deployment-package-name]

    3. Navigate to the {sisense-version} directory where you extracted the tar.gz file.

      cd sisense-[sisense-version]

    4. Edit the single_config.yaml file.

      vim single_config.yaml

    5. In the single_config.yaml file, you must enter values for the following parameters:

      Parameters

      Value

      k8s_nodes - { node: [name], internal_ip: 0.0.0.0, external_ip: 0.0.0.0 }

      K8S node/nodes are the set of machines that are used to run Sisense.

      This parameter sets:

      • node - The DNS name of your node. Changing the node name changes the hostname when the installer runs.
      • internal_ip - The internal IP address defines the location within your Kubernetes cluster.
      • external_ip - The external IP address sets how your cluster can be accessed from outside, or the DNS name of the node. It can have the same value as the internal IP if this is the only IP used to access the node.

      The installation machine is only used during installation to run the installation scripts. The installation machine can be one of the K8S nodes, or it can also be a different machine (remote installation).

      deployment_size: "small"

      To increase the pod resource limits allocated for the application, set deployment_size to large.

      cluster_visibility: true

      For security restrictions that revoke cluster role permissions, set cluster_visibility to false to disable the following Sisense workflows:

      • Watching Sisense Nodes that exist or are added to the cluster (e.g. for the data-groups feature). In this case, use the manual labeling method.
      • Updating the logging system with the customer-registered owner ID.

      offline_installer: false

      Set offline_installer to true when you are using an offline installer.

      #docker_registry: ""

      (Optional) Only required if you are using an offline installer (offline_installer = true).

      Enter your server's address.

      #pull_secrets_name: ""

      (Optional) Only required if you have entered a value for the docker_registry parameter.

      Enter the Docker secret name if your registry is private.

      remote installation: false

      If you are running your installation from a bastion machine (part of the K8S nodes), or remotely, set this to true.

      update: false

      If you are upgrading Sisense, set this to true, otherwise, keep this default value. 

      If you enter true, Sisense skips the Kubernetes installation. If your Kuberenetes cluster is already configured and running, keep yes to skip cluster installation.

      Staging and dev environments can run on the same cluster as a separate namespace. To install on a separate namespace, see Setting Up Multiple Instances of Sisense.

      Notify_On_Upgrade: true

      If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear.

      update_k8s_version: false

      To update the Kubernetes version, set this to true.

      cni_plugin:

      Enables the user to set their preferred CNI (Container Network Interface) while deploying a new Kubernetes.
      Valid values: calico (default), flannel

      Note
      When update_k8s_version is set to true, you must set this to your currently existing CNI value. (You can find your CNI value with the command: kubectl get pod -n kube-system | grep 'calico\|flannel'.

      .application_dns_name: ""

      Enter the DNS name.

      • If no DNS name is entered, the default value is the external IP of the first node in the cluster.
      • If the is_ssl parameter is set to true, enter the Common Name for this parameter.
      • If an external load balancer is used for the Common Name, add the http:// or https:// prefix to the entry.
      Note:
      • You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page.
      • The Web Server Alias must only contain the domain name, for example, https://secure.mydomain.com. It must not contain a deep link, for example, https://secure.mydomain.com/ReportingAdvanced/AdvancedDashboarding.aspx?myurl=.

      linux_user: "sisense"

      Enter the name of the Linux user. This user must not be the "root" user, but should have sudo privileges, and all the other privileges of a root user.

      ssh_key: ""

      Enter the SSH key if you have a secure connection to your server. This is the SSH key of the Linux user set in the linux_user parameter. The SSH key must be in .pem format.

      Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.

      Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.

      Note:
      Kubernetes ports should be released (Non-listening mode).

      gateway_port: 30845

      Enter the port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.

      If you are not implementing SSL, this is the port used to connect to Sisense.

      timezone: "UTC"

      Enter the system time zone based on the TZ database name (i.e., UTC, US/Central, Asia Tokoyo, Etc/GMC+6).

      is_ssl: false

      Set the value to true for secure connections to Sisense.

      Set the value to false if you have not implemented SSL.

      If set to true, see Setting Up SSL for Sisense Linux.

      ssl_key_path: ""

      If you connect to your server securely, enter the SSL keypath.

      When the SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the Gateway_port parameter.

      ssl_cer_path: ""

      If you connect to your server securely, enter the SSL certificate path to the .cer file.

      #http_proxy:

      (Optional) If you use a web proxy, enter the unsecured proxy value.

      Note:
      If your Linux system uses a proxy server for external traffic and no proxy for local traffic, you must complete the system configuration and Sisense configuration steps in Configuring for Linux Installation on a Proxy, No Proxy System before initializing Sisense on your system.

      #https_proxy:

      (Optional) If you use a web proxy, enter the secured proxy value.

      #no_proxy:

      (Optional) If you use a web proxy, enter the address(es) to exclude from your proxy. Use commas to separate multiple IP addresses..

      internal_monitoring: true

      When set to true, Sisense installs a Prometheus/Grafana/Flunetd dashboard. To disable a Prometheus-supported Grafana dashboard from monitoring your deployment, set this to false. See Monitoring Sisense on Linux.

      external_monitoring: false

      To disable external monitoring with your Logz.io account, set this to false. (See Connecting to your Logz.io Account.) When false, Sisense does not send messages outside your system.

      uninstall_cluster: false

      To remove the Kubernetes infrastructure and Sisense services, set this to true.

      uninstall_sisense: false

      To uninstall Sisense services, but leave your Kubernetes infrastructure unchanged (if it is needed in the future), set this to true.

      remove_user_data: false

      To delete all user data, set this to true. This deletes your ElastiCube models, application database, message broker, and add-ons.

    6. Run the configuration script.

        ./sisense.sh single_config.yaml

          Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings.

    7. Enter Yes to confirm that you want to deploy Sisense, or enter No to abort the deployment. If there are any issues when the deployment script finishes, view the installation logs as follows:

        [installation-dir]/sisense-ansible.log

    When the installation finishes a list of endpoints are displayed for accessing Sisense and managing your deployment. Additionally, you can run the following command to return the URL to access Sisense:

    kubectl cluster-info

    This command returns the URL of your Sisense application. You can enter this address into your browser to access Sisense. To verify that all your services are running as expected, you can enter the Sisense URL with the port and /app/test added to the end of the address in your browser. This displays the status of each of your services. For example:

    0.0.0.0:PORT/app/test

    To connect to Sisense, enter the URL address into your browser:

    • For non-secure connections: http://{IP}:30845/
    • For secure connections: https://{IP}/

    To connect to your Kubernetes dashboard, enter the following URL in your browser:

    https://{IP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy

    Cluster (Multi-Node) Deployments on RKE

    The instructions below describe how to deploy Sisense in a cluster deployment. If your cluster deployment is on EC2 with FSX for Lustre, see Deploying Sisense on EC2 with Amazon FSx for Lustre.

    Note:
    See Integrating Sisense with Portworx if your environment uses the Portworx platform for end-to-end storage and data management solution on the Kubernetes cluster.
    Note:
    Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. From Sisense Linux V8.2.1, Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.
    Note:
    If you are deploying Sisense on Red Hat Enterprise Linux 8.4, execute the following commands for each node prior to running the Sisense installation:
    sudo systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
    sudo reboot
    You must reboot or the changes will not be applied. Thereafter, install Sisense as usual.

    To install Sisense in a cluster deployment:

    1. In the Linux CLI, execute the following command to download the Sisense tar.gz file.

      wget [sisense-linux-deployment-link]

    2. Extract the tar.gz file:

      tar zxf [sisense-linux-deployment-package-name]

    3. Navigate to the directory where you extracted the tar.gz file.

      cd sisense-[sisense-version]

    4. Edit the cluster_config.yaml file.

      vim cluster_config.yaml

      After running this command, the parameters of the cluster_config.yaml file are displayed.
    5. In the cluster_config.yaml file, populate values for the following parameters:
      Note:
      If you have multiple deployments, assign a unique namespace for each deployment. For example, there might be development and production environments. Additionally, for multiple deployments, each environment must have a unique gateway_por


      Parameters

      Value

      k8s_nodes - { node: node1, internal_ip: 0.0.0.0, external_ip: 0.0.0.0, disk_volume_device: /dev/sdb, roles: "application, query" } - { node: node2, internal_ip: 0.0.0.0, external_ip: 0.0.0.0, disk_volume_device:

      The K8S nodes are the set of machines that will be used to run Sisense.

      If you are implementing a multi-node cluster deployment, define the following for each node:

      node: The DNS name of your node.

      internal_ip: Enter the address of the location of your node within your Kubernetes cluster.

      external IP: This address determines how your cluster can be accessed from outside, or the DNS name of the node. It can also be the same value as the internal IP if this is the only IP used to access the node.

      If you are using Rook-Ceph for shared storage, disk_volume_device is the location where ElastiCubes and other shared assets are stored. You need to populate this value for each node. To retrieve the value, run the lsblk command on each node and enter the location returned for each node.

      roles: Sets the role of the node. Valid values: application, query, and build.

      The installation machine is only used during installation, to run the installation scripts. The Installation machine can be one of the Kubernetes nodes, but it can also be a different machine (for remote installation).


      deployment_size: "small"

      To increase the pod resource limits allocated for the application, set deployment_size to large.

      cluster_visibility: true

      For security restrictions that revoke cluster role permissions, set cluster_visibility to false to disable the following Sisense workflows.

      • Watching Sisense Nodes that exist or are added to the cluster (e.g. for the data-groups feature). In this case, use the manual labeling method.
      • Updating the logging system with the customer-registered owner ID.

      offline_installer: false

      Set to true when you are using an offline installer.

      #docker_registry: ""

      (Optional) Only required if you are using an offline installer (offline_installer = true). Enter your server's address.

      #pull_secrets_name: ""

      (Optional) Only required if you have entered a value for the docker_registry parameter.

      Enter the docker secret name if your registry is private.

      update: false

      If you are upgrading Sisense, set this to true. Otherwise, use false as the default value.

      If you set this to true, Sisense skips the Kubernetes installation.

      If your Kuberenetes cluster is already configured and running, keep true to skip cluster installation.

      Staging and dev environments can run on the same cluster as a separate namespace. Confirm that you have enough storage in the Rook-Ceph for a second namespace. For installing on a separate namespace, the value of the namespace_name parameter must be updated.

      Notify_On_Upgrade: true

      If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear.

      remote_installation: false

      If you are running your installation from a bastion machine (part of the Kubernetes nodes), or remotely, set this to true.

      application_dns_name: ""

      Enter the DNS name.

      • If no DNS name is entered, the default value is the external IP of the first node in the cluster.
      • If the is_ssl parameter is set to true, enter the Common Name for this parameter.
      • If an external load balancer is used for the Common Name, add the http:// or https:// prefix to the entry.
      Note:
      • You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page.
      • The Web Server Alias must only contain the domain name, for example, https://secure.mydomain.com. It must not contain a deep link, for example, https://secure.mydomain.com/ReportingAdvanced/AdvancedDashboarding.aspx?myurl=.

      linux_user: "sisense"

      Enter the name of the Linux user.

      This user must not be the "root" user, but must have sudo privileges, and all the other privileges of a root user. See Installing RKE with a Specified User.

      run_as_user: 1000

      The user ID that will perform the installation. This will also be used in the SecurityContext.runAsUser setting for Sisense services (pods). See Installing RKE with a Specified User.

      run_as_group: 1000

      The user group ID that will perform the installation. This will also be used in the SecurityContext.runAsGroup setting for Sisense services (pods). See Installing RKE with a Specified User.

      fs_group: 1000

      The SecurityContext.fsGroup setting for the Kubernetes pods. Kubernetes recursively changes ownership and permissions for the contents of each volume to match the fsGroup specified in a pod's securityContext when that volume is mounted. See Installing RKE with a Specified User.

      ssh_key: “”

      Enter the SSH key if you have a secure connection to your server.This is the SSH key of the Linux user set in the linux_user parameter. The SSH key must be in .pem format.

      high_availability: true

      True means that Sisense is scaled for service redundancy.

      False means that Sisense will not scale its services.

      storage_type: “”

      Valid values:

      rook-ceph: For using rook-ceph with the three secondary disks you defined in the k8s_nodes>disk_volume_device on the first 3 machines.

      nfs: For using an external NFS server as the shared storage. You must define the nfs_server and nfs_path parameters, and have root read/write permissions on the path from the cluster hosts.

      fsx: For using an Amazon FSX cluster. You must also enter values for fsx_dns_name and fsx_mount_name.

      fsx_dns_name: “”

      If your system uses AWS FSx services, enter the associated DNS alias name.

      fsx_mount_name: “”

      If your system uses AWS FSx services, enter the mount name for the file system.

      nfs_server: “”

      Enter your NFS server’s address (IP or DNS).

      nfs_path: “”

      Enter your NFS server’s location.

      The mounting point for each logical disk (Sisense app, MongoDB, and Zookeeper) is created under this path.

      sisense_disk_size: 70

      If you have implemented Rook-Ceph for storage, enter the amount of disk space in gigabytes allocated for Sisense.

      Important:
      You must provide enough space to support your Sisense ElastiCube models, at least twice the amount of data in all ElastiCubes. Rook-Ceph is set for two replicas so assume the same logical disk is in two of the physical disks you set in the k8s_nodes and disk_volume_device parameters.

      Every namespace takes additional logical disk space from the physical disks, and the installation fails if you did not allocate enough space. To calculate the required space, you can use the following equation: sisense_disk_size = 70GB x 3 (for a three node deployment) If you allocate space for the application DB and configuration DB (the values of mongodb_disk_size and zookeeper_disk_size), this should also be considered. If you enter 210GB as the value, this allocates 70GB in a 3 node deployment minus 3 times (the values of mongodb_disk_size and zookeeper_disk_size). Sisense also recommends that you specify an additional 5GB free space for the value of sisense_disk_size.

      mongodb_disk_size: 20

      Enter the amount of disk space allocated for the Sisense application database.

      Multiply this value by the number of nodes used in your deployment.

      It is recommended to leave the default of 20GB. If only metadata is stored in the MongoDB, there is no need to increase the size.

      zookeeper_disk_size: 2

      Enter the amount of disk space allocated for the ZooKeeper service.

      If you have several deployments, this number is the sum of all the zookeeper disk sizes of all the deployments. It must be at least 2GB.

      It is recommended to leave the default of 2GB. If only metadata is stored in Zookeeper, there is no need to increase the size.

      timezone: “UTC”

      Enter the system time zone applicable to the time zone of the relative date-time filters. Format: TZ database name (i.e., UTC, US/Central, Asia Tokyo, Etc/GMC+6).

      namespace_name: sisense

      Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.

      If you have multiple deployments, use a unique namespace for each deployment. For example, there might be development and production environments.

      Additionally, for multiple deployments:

      • Each environment must have a unique gateway_port value.
      • After the first deployment, the value of the update parameter must be set to true.
      Note:
      Kubernetes ports should be released (Non-listening mode).

      gateway_port: 30845

      The port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.

      If you are not implementing SSL, this is the port used to connect to Sisense.

      is_ssl: false

      For secure connections to Sisense, set this to true and see Setting Up SSL for Sisense Linux.

      If you have not implemented SSL, set this to false.

      ssl_key_path: ""

      If you connect to your server securely, enter the SSL keypath.

      When SSL is defined, the Sisense API Gateway Port will be 443 and not the gateway_port value.

      ssl_cer_path: ""

      If you connect to your server securely, enter the SSL certificate path (.cer file).

      weave_enabled: false

      Set this to true if your cluster uses Azure or Google virtual machines, or any other instance in your deployment that does not support IP in the IP network protocol.

      The default network plugin is Calico. Sisense supports the Weave network plugin for communication between nodes.

      new_node: false

      To add new nodes, set this to true.

      You can add additional nodes if you have already provisioned Sisense and have a working cluster.

      You must define the new nodes in the k8s_nodes parameter, in addition to the existing nodes. Adding new nodes does not affect your existing nodes.

      remove_node: false

      To remove a node from your cluster, set this to true.

      Enter the node to be removed in the value of the node_to_remove parameter.

      nodes_to_remove: ‘node4’

      Enter the name of a node to be removed.

      You can remove multiple nodes by entering a comma-separated list of nodes, for example: node_1, node_2.

      Note:
      You will need to update the k8s_nodes parameter if a node is removed.

      update_k8s_version: false

      To update the Kubernetes version, set this to true.

      cni_plugin:

      Enables the user to set their preferred CNI (Container Network Interface) while deploying a new Kubernetes.
      Valid values: calico (default), flannel

      Note
      When update_k8s_version is set to true, you must set this to your currently existing CNI value. (You can find your CNI value with the command: kubectl get pod -n kube-system | grep 'calico\|flannel'.

      recover_kubernetes: false

      If one of your nodes is broken, set this to true. Sisense removes the node and recovers it.

      #http_proxy:

      (Optional) If you use a web proxy, enter the unsecured proxy value.

      Note:
      If your Linux system uses a proxy server for external traffic and no proxy for local traffic, you must complete the system configuration and Sisense configuration steps in Configuring for Linux Installation on a Proxy, No Proxy System before initializing Sisense on your system.

      #https_proxy:

      (Optional) If you use a web proxy, entered the secured proxy value.

      #no_proxy:

      (Optional) If you use a web proxy, enter the addresses to exclude from your proxy. You can use commas to seperate multiple IP addresses.

      internal_monitoring: true

      When true, Sisense installs a Prometheus/Grafana/Flunetd dashboard. To disable a Prometheus-supported Grafana dashboard from monitoring your deployment, set this to false. See Monitoring Sisense on Linux and Installing RKE with a Specified UID.

      external_monitoring: false

      To disable external monitoring with your Logz.io account, set this to false. See Connecting to your Logz.io Account and Installing RKE with a Specified UID. When false, Sisense does not send messages outside your system.

      uninstall_cluster: false

      To remove Kubernetes infrastructure and Sisense services, set this to true.

      uninstall_sisense: false

      To uninstall Sisense services, but leave your Kubernetes infrastructure unchanged, set this to true. Only the Sisense application is removed.

      This can be used if you need to remove Sisense from your own cloud-based cluster without impacting the cluster.

      remove_user_data: false

      To delete all user data, set this to true.

      This deletes your ElastiCube models, application database, message broker, and add-ons.

    6. Run the configuration script.
      vim./sisense.sh cluster_config.yaml
      Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings.
    7. Enter Yes to confirm that you want to deploy Sisense.
      Enter No to abort the deployment.
      If there are any issues, you can view the installation logs as follows:

      vim[installation-dir]/sisense-ansible.log

    When the installation finishes, a list of endpoints are displayed for accessing Sisense and managing your deployment. The URLs are listed below. Additionally, you can run the following command to return the URL to access Sisense:

    vimkubectl cluster-info

    This command displays the URLs of your Sisense application. You can enter these addresses in your browser to access Sisense.

    To verify that all your services are running as expected, you can enter the Sisense URL with the port and /app/test concatenated to the end of the address in your browser. This displays the status of each of your services. For example:

    0.0.0.0:PORT/app/test

    To connect to Sisense, in your browser, enter the URL address into your browser:

    To see a list of endpoints in the multi-node cluster installation, connect to Sisense in your browser and enter the relevant command in your browser:

    • For non-secure connections:

      http://{IP}:30845/

    • For secure connections:

      https://{IP}/

    To connect to your Kubernetes dashboard, enter the following in your browser:

    https://{IP}:6443/api/v1/namespaces/kubesystem/services/https:kubernetes-dashboard:/proxy
    https://{IP}:6443/api/v1/namespaces/kubesystem/services/https:kubernetes-dashboard:/proxy 

    Deployment on OpenShift

    From Sisense V8.2.1.330, Sisense added support for OpenShift 4.3.19, 4.4, and 4.5, in addition to supporting OpenShift OpenShift 3.11 and 4.0.

    Use the following instructions to install Sisense on the OpenShift platform.

    If you have an OpenShift environment on AWS, Sisense has created a script you can use to prepare your environment, see Preparing an OpenShift Environment.

    If you need to install OpenShift offline, see  Installing Sisense on OpenShift Offline.

    Note:
    Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. From Sisense Linux V8.2.1, Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.

    Prerequisites

    • Linux OS supported by Sisense, see Linux Minimum Requirements
    • Storage supported by Sisense, for example OpenShift: Rook-Ceph, NFS-client, NFS-server, Cephfs, Trident or any other ReadWriteMany storage class
    • A licensed Red Hat Pull Secret
    • Access to your OpenShift CLI and credentials

    To install Sisense Linux on OpenShift:

    1. In the Linux CLI, enter the following command to download the Sisense tar.gz file.

      wget [sisense-linux-deployment-link]

    2. Extract the tar.gz file:

      tar zxf [sisense-linux-deployment-package-name]

    3. Navigate to the directory where you extracted the tar.gz file.

      cd sisense-*

    4. Edit the openshift_config.yaml file.

      vim openshift_config.yaml

      The parameters of the openshift_config.yaml file are displayed.

    5. In the openshift_config.yaml file, populate values for the following parameters::

      Parameters

      Value

      k8s_nodes - { node: node1, roles: "application, query" } - { node: node2, roles: "application, query" } - { node: node3, roles: "build" }

      K8S node/nodes are the set of machines that will be used to run Sisense. These nodes must have the name of the Sisense nodes.

      node: Enter the names of the nodes to be included in the cluster. You can retrieve their values with the command: kubectl get nodes

      role: Set the role of the node with one of the following values:

      • Query
      • Application
      • Build

      The installation machine is only used during installation, to run the installation scripts. The installation machine can be one of the K8S nodes, or a different machine  for remote installation.

      deployment_size: "small"

      To increase pod resource limits allocated for the application, set deployment_size to large.

      cluster_visibility: true

      To increase pod resource limits allocated for the application, set For security restrictions that revoke cluster role permissions, set cluster_visibility to false to disable the following Sisense workflows.

      • Watching Sisense Nodes that exist or are added to the cluster (e.g. for the data-groups feature). In this case, use the manual labeling method.
      • Updating the logging system with the customer-registered owner ID.

      is_openshift: true

      Set this to true when you are installing Sisense Linux on OpenShift.

      offline_installer: false

      Set this to true when you are using an offline installer.

      #docker_registry: ""

      (Optional) Only required if you are using an offline installer (offline_installer = true).

      Enter your server's address.

      #pull_secrets_name: ""

      (Optional) Only required if you have entered a value for the docker_registry parameter.

      Enter the docker secret name if your registry is private.

      update: false

      If you are upgrading Sisense, set this to true. Otherwise, use false as the default value. If you enter true, Sisense skips the OpenShift installation.

      Notify_On_Upgrade

      If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear.

      application_dns_name: ""

      Enter the DNS name.

      • If no DNS name is entered, the default value is the external IP of the first node in the cluster.
      • If the is_ssl parameter is set to true, enter the Common Name for this parameter.
      • If an external load balancer is used for the Common Name, add the http:// or https:// prefix to the entry.
      Note:
      • You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page.
      • The Web Server Alias must only contain the domain name, for example, https://secure.mydomain.com. It must not contain a deep link, for example, https://secure.mydomain.com/ReportingAdvanced/AdvancedDashboarding.aspx?myurl=.

      linux_user: ""

      Enter the name of the Linux user.

      This user must not be the "root" user, but must have sudo privileges, and all the other privileges of a root user.

      ssh_key: ""

      Enter the SSH key if you have a secure connection to your server. This is the SSH key of the Linux user set in the linux_user parameter. The SSH key must be in .pem format.

      If you do not provide this key, you will be prompted to enter the Linux user's password during installation.

      cloud_load_balancer: false

      If you have defined a load balancer, set this to true. For more information, see Setting Up a Load Balancer.

      high_availability: true

      True means that Sisense is scaled for service redundancy.

      False means that Sisense will not scale its services.

      storage_type: ""

      Enter one of the following values:

      rook-ceph: When using Rook-Ceph, you must provide your own shared storage and enter the storage class name as the value of rwx_sc_name.

      nfs:When using an external NFS server as the shared storage. You must define the nfs_server and nfs_path parameters, and have root read/write permissions on the path from the cluster hosts.

      nfs-server: An NFS Server will be installed in OpenShift. It will use the RWO Storage class. You can configure "nfs-server" for both rwx_sc_name or  rwo_sc_name, or leave them blank, and the installation will choose the nfs-server storage class.

      ceph: When using Ceph RBD, you must provide your own shared storage and enter the storage class name as the value of rwx_sc_name .

      trident: When using NetApp Trident, you must provide your own shared storage and enter the storage class name as the value of rwx_sc_name.

      rwx_sc_name: ""

      Enter the name of your ReadWriteMany storage class.

      rwo_sc_name: ""

      Enter the name of your ReadWriteOnce storage class.

      nfs_server: ""

      Enter your NFS server’s address (IP or DNS).

      nfs_path: ""

      Enter your NFS server’s location.

      The mounting point for each logical disk (Sisense app, MongoDB, and Zookeeper) is created under this path.

      sisense_disk_size: 70

      If you have implemented Rook-Ceph for storage, enter the amount of disk space in gigabytes to be allocated for Sisense.

      Important:
      You must provide enough space to support your Sisense ElastiCube models, at least twice the amount of data in all ElastiCubes. Rook-Ceph is set for two replicas so assume the same logical disk is in two of the physical disks you set in the k8s_nodes and disk_volume_device parameters

      Every namespace takes additional logical disk space from the physical disks, and the installation fails if you did not allocate enough space.

      To calculate the required space, you can use the following equation:

      sisense_disk_size = 70GB x 3 (for a three node deployment)

      If you allocate space for the application DB and configuration DB (the values of mongodb_disk_size and  zookeeper_disk_size), this should also be considered. If you enter 210GB as the value, this allocates 70GB in a 3 node deployment minus 3 times (the values of mongodb_disk_size and  zookeeper_disk_size).

      Sisense recommends that you specify an additional 5GB of free space for the value of sisense_disk_size.

      mongodb_disk_size: 20

      Enter the amount of disk space allocated for the Sisense application database.

      This value should be multiplied by the number of nodes used in your deployment.

      It is recommended to leave the default of 20GB. If only metadata is stored in the MongoDB, there is no need to increase the size.

      zookeeper_disk_size: 2

      Enter the amount of disk space allocated for the ZooKeeper service.

      This value should be multiplied by the number of nodes in your deployment.

      It is recommended to leave the default of 2GB. If only metadata is stored in the Zookeeper service, there is no need to increase the size.

      timezone: "UTC"

      Enter the system time zone applicable to the time zone of the relative date-time filters. Format: TZ database name (i.e., UTC, US/Central, Asia Tokyo, Etc/GMC+6).

      namespace_name: sisense

      Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.

      If you have multiple deployments, you should have a unique namespace for each deployment. For example, there might be a development and production environment.

      Additionally for multiple deployments:

      • Each environment must have a unique gateway_port value.
      • Each deployment after the first, the value of the update should be set to true.
      Note:
      Kubernetes ports should be released (Non-listening mode).

      gateway_port: 30845

      Enter the port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.

      If you are not implementing SSL, this is the port used to connect to Sisense.

      is_ssl: false

      For secure connections to Sisense, set this to true.

      If you have not implemented SSL, set this to false.

      If set to true, see Setting Up SSL for Sisense Linux.

      ssl_key_path: ""

      If you connect to your server securely, enter the SSL keypath.

      When the SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the gateway_port parameter.

      ssl_cer_path: ""

      If you connect to your server securely, enter the SSL certificate path to the .cer file.

      uninstall_sisense: false

      To uninstall Sisense services, but leave your Kubernetes infrastructure unchanged (if it is needed in the future), set this to true.

      remove_user_data: false

      To delete all user data, set this to true.

      This deletes your ElastiCube models, application database, message broker, and add-ons.

    6. Run the configuration script.
      ./sisense.sh openshift_config.yaml
    7. Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings.
    8. Enter Yes to confirm that you want to deploy Sisense, or enter No to abort the deployment.
      If there are any issues, view the installation logs:

      [installation-dir]/sisense-ansible.log

    Deploying on Cloud-Based KubernetesSisense supports several cloud-based Kubernetes systems in which you can deploy Sisense Linux on your own cloud-based Kubernetes, including:
    • Amazon EKS
    • Google GKE
    • Microsoft AKS

    Sisense Linux can be deployed on each of these by configuring the cloud_config.yaml file. For specific instructions, see:

  6. Copy the URL to your supported browser to access the Sisense application online.

Watch this video about Installing Sisense:


Next Steps


Was this article helpful?