OpsAdministration Jenkins Jobs

OpsAdministration jenkins jobs are used mainly for operations such as database backup, creating new users to provide ssh access etc.

These jobs are split into three folders - Core, KP and DP. This is same as the structure of other jobs. They also work similar to other set of jobs.

The jobs are quite simple and do what the name implies and are self explanatory. For example, a job named CassandraBackup performs the data backup cassandra database.

The working of these jobs are also exactly similar to other jobs - There is a Jenkinsfile and a ansible role for each of these.

For more information on the Jenkinsfile and ansible roles, refer to the pipeline and playbook code. Few images below on how to check this -

  • Go to the job

  • Click on configure and find the repo and Jenkinsfile

  • Go to repo and find the jenkinsfile and ansible playbook

  • Check the ansible playbook to understand what it does

 

You can use any latest tag or branch to run these jobs. We recommend running the backup jobs from the following tag - https://github.com/project-sunbird/sunbird-devops/tree/tag-for-backups

You will also find similar backup tag in other repositories https://github.com/project-sunbird/sunbird-learning-platform/tree/tag-for-backups and https://github.com/Sunbird-Obsrv/sunbird-data-pipeline/tree/tag-for-backups

The backup jobs are run with a cronjob option on jenkins so that automated backups happen on a daily basis or based on the schedule. These can be modified as per need.

There are other set of jobs which are used as part of a release. For example, GraylogMongoImport job will add new dashboards, alerts etc into graylog. These will be run as part of a release with the release tags.

Below is a one liner description for each of these jobs

Core Directory Jobs

What it does?

Core Directory Jobs

What it does?

ApplicationElasticsearchBackup

Takes application elasticsearch cluster backup

ApplicationElasticsearchRestore

Restores from application elasticsearch backup

Bootstrap

Installs initial set of packages on a new VM

CassandraBackup

Takes cassandra backup

ClearDockerImages

Clears all existing docker images from jenkins vm

ClearWorkspace

Clears workspace from jenkins vm

CreateUser

Creates new user on an ansible vm group

GrafanaBackup

Takes grafana backup

GraylogGeoIP

Initializes geo ip db on graylog nodes

GraylogMongoDbBackup

Takes backup of mongo db from graylog nodes

GraylogMongoImport

Imports data into mongo db on graylog nodes

JenkinsBackup

Takes jenkins backup

KeyRotation

Rotates ssh key on vms

KongMigration

Performs migration of kong db

Log4jFix

Performs fixes for log4j vulnerabilities

LoggerElasticSearchBackup

Takes log elasticsearch cluster backup

LoggerElasticSearchRestore

Restores from log elasticsearch backup

ManagedPostgresBackup

Takes back up of managed postgres database

MongoDbBackup

Takes back up of mongodb

MongoRestore

Restores from mongodb backup

MonitDeploy

Deploy monit onto vms

MonitStatus

Checks monit status from vms

PostInstallScript

Perfroms sunbird post install steps

PostgresqlBackup

Takes back up of postgres db

PostgresqlMigration

Perform postgresql migration

PostgresqlRestore

Restores from postgres backup

PrometheusBackup

Takes back up of prometheus db

PrometheusSanpshot

Takes snapshot of prometheus db

RedisBackup

Takes back up of redis db

ml-mongo-dump

Dumps the data from managed learn mongo

 

KnowledgePlatform Directory Jobs

What it does?

KnowledgePlatform Directory Jobs

What it does?

Bootstrap

Installs initial set of packages on a new VM

CassandraBackup

Takes cassandra backup

CassandraRestore

Restores from cassandra backup

CreateUser

Creates new user on an ansible vm group

ElasticsearchBackup

Takes composite elasticsearch cluster backup

ElasticsearchRestore

Restores from composite elasticsearch backup

KeyRotation

Rotates ssh key on vms

Log4jFix

Performs fixes for log4j vulnerabilities

MonitDeploy

Deploy monit onto vms

MonitStatus

Checks monit status from vms

Neo4jBackup

Takes neo4j cluster backup

Neo4jRestore

Restores from neo4j backup

RedisBackup

Takes back up of redis db

RedisRetore

Restores from redis backup

 

KnowledgePlatform Directory Jobs

What it does?

KnowledgePlatform Directory Jobs

What it does?

Bootstrap

Installs initial set of packages on a new VM

CassandraBackup

Takes cassandra backup

CassandraRestore

Restores from cassandra backup

ConsumerLagAlert

Provides info about current lag from consumers

CreateUser

Creates new user on an ansible vm group

DataproductsAlert

Alerts on failure of data products job

DruidPostgresBackup

Takes back up of druid postgres db

ElasticsearchBackup

Takes telemetry elasticsearch cluster backup

ElasticsearchRestore

Restores from telemetry elasticsearch backup

InfluxDBBackup

Takes back up of influx db

InfluxdbRestore

Restores from influx db backup

KeyRotation

Rotates ssh key on vms

Log4jFix

Performs fixes for log4j vulnerabilities

MonitDeploy

Deploy monit onto vms

PostgresqlBackup

Takes back up of postgres db

PostgresqlRestore

Restores from postgres backup

RedisBackup

Takes back up of redis db

RedisDumpMonitoring

Alerts if redis db dump fails

RedisRestore

Restores from redis backup

RestartSecorJobs

Restarts secor jobs

SamzaJobsAlert

Alerts in case of samza job failures

SamzaJobsAlertProvision

Deploys the alerting scripts in samza vms

SamzaJobsKill

Kills samza jobs

SamzaLogsBackup

Backs up samza logs

SamzaMonitoringProvision

Deploys the monitoring scripts in samza vms

SamzaOrphanprocessAlert

Alerts on orphan samza processes

SamzaThroughputAlert

Alerts if events are 0 or not getting processed

SamzaThroughputProvision

Deploys the throughput alert script in samza vms