Prerequisites

Edit | Report

Overview

Before you install Sunbird in a server environment, make sure that you have the required permissions, servers, hardware, software, accounts and so on. Without these aspects in place, you may face delays that can best be avoided.

To efficiently handle Sunbird installation, you need to have:

  • System administrator permissions on Sunbird and all servers
  • Hands-on experience in administering Linux systems
  • Hands-on experience using Docker to run containerized services

Note: Sunbird is tested on cloud hosted Linux servers (Azure & AWS). Hence, it is recommended that you use Linux servers. Sunbird and its functionality is not tested on Microsoft® operating systems, or on in-premise infrastructure, like rack mounted servers. The Sunbird installer has a known issue on virtual machines such as those created by VirtualBox or VMWare.

Provisioning Servers

Before you start the installation process, ensure that you provision for servers to host applications and set up required accounts and repositories as per details provided.

Application Server Count
Jenkins 4core 16G 250G HDD 1
LP 4core 16G 60G HDD 1
DP 4core 16G 60G HDD 1
Core 4core 16G 60G HDD 1
DB 4core 16G 60G HDD 1
Yarn 4core 16G 60G HDD 2
Load Balancers - 5 (Optional)

List of Servers with their Ansible Group Name

Module Servers Service Ansible Group Name
Build and Deploy Server-1 (Jenkins) Jenkins Master
Core Server-2 (Docker) Docker Manager and Worker swarm-manager-1, swarm-agent-for-prometheus-1, swarm-agent-for-alertmanager-1, swarm-bootstrap-manager, swarm-node-1 , swarm-agent-dashboard-1, swarm-dashboard-1
Logs Elasticsearch log-es-1
Keycloak keycloak-1
Databases Server-3 (DB's) Cassandra cassandra-1, lp-cassandra, dp-cassandra, core-cassandra, cassandra-node-1, cassandra-ps, cassandra
Postgres postgresql-master-1, postgresql-slave-1, postgres
Application Elasticsearch es-1, composite-search-cluster, es-ps, core-es-1
Neo4j learning-neo4j-node1
Knowledge Platform Server-4 (KP Services and Kafka) Learning learning1, logstash-ps, learning
Redis redis1, lp-redis, redis
Search search1, search
Kafka processing-cluster-kafka, processing-cluster-zookeepers, kafka-ps, kafka-1
Data Pipeline Server-5 (DP Services) Spark spark
Analytics analytics-api, analytics-ps
Kafka Indexer kafka-indexer
InfluxDB influxdb
Secor secor, secor-ps
Yarn Server-6 (Yarn Master) Yarn Master Slave 1 yarn-master, yarn-slave, yarn-ps
Server-7 (Yarn Slave) Yarn Master Slave 2 yarn-master, yarn-slave, yarn-ps

Other Requirements

1.Private GitHub repository to store Ansible hosts and secrets
2.Fully Qualified Domain Name (FQDN) with SSL
3.Azure Storage account
5.Docker hub account
6.A Public IP
7.Security:

  • All ports must be open in internal networks (Azure-Vnet or AWS-VPC) for internal comumnication between the VMs
  • External ports must be open from the Proxy or load balancer, following ports should open to public
    • 80 (0.0.0.0) inbound
    • 443 (0.0.0.0) inbound
  • By default, all the outbound ports are allowed for public access from the VM.

Edit | Report