-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GitBook: [#599] updated prerequisites
- Loading branch information
1 parent
96ebe88
commit 707f3ab
Showing
20 changed files
with
585 additions
and
4 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
43 changes: 43 additions & 0 deletions
43
use/prerequisites-for-your-own-sunbird-ed-instance/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Prerequisites for your own Sunbird ED Instance | ||
|
||
#### Recommended Permissions and Experience <a href="#recommended-permissions-and-experience" id="recommended-permissions-and-experience"></a> | ||
|
||
To successfully complete Sunbird installation, you need to have: | ||
|
||
* System administrator permissions on and all servers | ||
* Hands-on experience in administering and debugging Linux systems | ||
* Hands-on experience using Docker and Kubernetes to run containerized services | ||
|
||
> **Note:** Sunbird is tested only on cloud hosted Ubuntu servers in Azure. We do not provide any support for installing Sunbird on other operating systems. Sunbird might work on other cloud providers, feel free to try it out and let us know. We are actively working on achieving cloud neutrality. | ||
#### Infra Requirements <a href="#infra-requirements" id="infra-requirements"></a> | ||
|
||
* Kubernetes Cluster with 4 worker nodes | ||
* Private GitHub repository to store ansible inventory | ||
* Fully Qualified Domain Name (FQDN) with SSL | ||
* Object Storage | ||
* Docker hub account | ||
* Public IP | ||
* Google Oauth Credentials | ||
* Google V3 Recaptcha Credentials | ||
* Maxmind city database (free or paid) | ||
* A SMTP account (any email provider works, except Gmail for now) | ||
* All ports must be open for internal communication (Azure Virtual Network or AWS VPC) between the VMs | ||
* Internet and outbound access from VMs | ||
* A sms service provider API Token (optional) | ||
* YouTube API Token (optional) | ||
* Slack account and slack bot with API Token (optional) | ||
|
||
#### Provisioning Servers <a href="#provisioning-servers" id="provisioning-servers"></a> | ||
|
||
Before you start the installation process, ensure that you have the required infrastructure mentioned below. It is the bare minimum for a full fledged Sunbird setup. Every component in Sunbird can scale horizontally / vertically by adding additional resources. | ||
|
||
| APPLICATION | SERVER | COUNT | | ||
| -------------------- | ------------------ | ------------ | | ||
| Jenkins | 4core 16G 250G HDD | 1 | | ||
| KP | 4core 16G 60G HDD | 1 | | ||
| DP | 4core 16G 60G HDD | 1 | | ||
| DB | 4core 16G 60G HDD | 1 | | ||
| Yarn | 4core 16G 60G HDD | 1 | | ||
| Other Services | 4core 16G 60G HDD | 1 | | ||
| Basic Load Balancers | - | 2 (Optional) | |
2 changes: 2 additions & 0 deletions
2
use/prerequisites-for-your-own-sunbird-ed-instance/platform/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Platform | ||
|
67 changes: 67 additions & 0 deletions
67
use/prerequisites-for-your-own-sunbird-ed-instance/platform/ansible-variables.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Ansible Variables | ||
|
||
### Overview <a href="#overview" id="overview"></a> | ||
|
||
Ansible is the configuration management system used in Sunbird. The infrastructure setup, deployment of services and other configurations is handled primarily through ansible. | ||
|
||
#### Updating the Private Repository with Hosts and Variables <a href="#updating-the-private-repository-with-hosts-and-variables" id="updating-the-private-repository-with-hosts-and-variables"></a> | ||
|
||
Use the following git commands sequentially to clone and update your private GitHub repository - | ||
|
||
```bash | ||
git clone https://github.com/project-sunbird/sunbird-devops | ||
cd sunbird-devops | ||
git checkout tags/release-4.3.0 -b release-4.3.0 | ||
``` | ||
|
||
* Copy the directory `sunbird-devops/private_repo/ansible` to your private repo | ||
* Update the files **common.yml**, **hosts**, and **secrets.yml** under **Core**, **KnowledgePlatform** and **DataPipeline** directories. After updating, push them to your private repo branch | ||
* Your private repo structure starting from the root path should be exactly as shown below | ||
|
||
```bash | ||
ansible | ||
└── inventory | ||
└── dev | ||
├── Core | ||
│ ├── common.yml | ||
│ ├── hosts | ||
│ └── secrets.yml | ||
├── DataPipeline | ||
│ ├── common.yml | ||
│ ├── hosts | ||
│ └── secrets.yml | ||
└── KnowledgePlatform | ||
├── common.yml | ||
├── hosts | ||
└── secrets.yml | ||
``` | ||
|
||
> Note: | ||
> | ||
> * The ansible inventory setup is a must before we can start to run jobs from the **Provision**, **ArtifactUpload** and **Deploy** directory in Jenkins. The **Build** directory on Jenkins does not depend on the ansible variables | ||
> * It is highly recommended that you complete the ansible inventory updates before proceeding further | ||
#### List of Servers with their Ansible Group Names <a href="#list-of-servers-with-their-ansible-group-names" id="list-of-servers-with-their-ansible-group-names"></a> | ||
|
||
| Module | Servers | Service | Ansible Group Names | | ||
| ------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| Build and Deploy | Server-1 | Jenkins Master | | | ||
| Databases | Server-2 | Cassandra | cassandra-1, lp-cassandra, dp-cassandra, core-cassandra, report-cassandra, cassandra-node-1, cassandra | | ||
| Postgres | postgresql-master-1, postgresql-master, postgres | | | | ||
| Application Elasticsearch | es-1, composite-search-cluster, core-es-1, core-es, es-backup, es | | | | ||
| Neo4j | learning-neo4j-node1, learning-neo4j-cluster | | | | ||
| Mongo | mongo\_master, mongo | | | | ||
| Knowledge Platform | Server-3 | Learning | learning1, learning, learningall | | ||
| Redis | redis1, redis, redis-ps, redisall, lp-redis, lp-redis-ps, dp-redis, lms-redis, redis-exporter-targets | | | | ||
| Zookeeper | processing-cluster-zookeepers, ingestion-cluster-zookeeper, raw-zookeeper, zookeeper | | | | ||
| Kafka | processing-cluster-kafka, ingestion-cluster-kafka, kafka-1, kafka | | | | ||
| Data Pipeline | Server-4 | Spark | spark | | ||
| Kafka Indexer (Logstash) | kafka-indexer | | | | ||
| InfluxDB | influxdb | | | | ||
| Keycloak | keycloak-1, keycloak | | | | ||
| Yarn | Server-5 | Yarn Master and Slave | yarn-master, yarn-slave, yarn | | ||
| Other Services | Server-6 | Druid | druid-postgres, raw-coordinator, raw-overlord, raw-broker, raw-historical, raw-middlemanager, raw-graphite, rollup-coordinator, dp-druid-broker, broker, coordinator, druid-raw | | ||
| Logs Elasticsearch | log-es-1, log-es-backup, log-es | | | | ||
| | | | | | ||
|
||
\\ |
Oops, something went wrong.