Deploying VM

This section provides detailed instructions on how to deploy VM in the AWS.

TC-Redis

To install TC-Redis, follow the steps below:

  1. Update and install Redis:
    dnf update
    dnf install epel-release
    dnf install redis
  2. Start Redis:
    systemctl status redis
    systemctl start redis
  3. Enable remote access: Edit /etc/redis.conf, comment.
    cd /etc
    vi redis.conf
    comment #bind 127.0.0.1
    add bind 0.0.0.0

Rabbitmq-Celery

To install the Rabbitmq-Celery, follow the steps below:
  1. Update and install Redis:
    dnf update
    dnf install epel-release
    dnf install redis
  2. Start Redis:
    systemctl status redis
    systemctl start redis
  3. Enable remote Redis access: Edit /etc/redis.conf, comment.
    cd /etc
    vi redis.conf
    comment #bind 127.0.0.1
    add bind 0.0.0.0
  4. Install dependencies: dnf install socat logrotate -y.
  5. Install Erlang:
    curl -LO -C - https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5/erlang-26.2.5-1.el8.x86_64.rpm
    sudo dnf install ./erlang-26.2.5-1.el8.x86_64.rpm
  6. Add RabbitMQ repo and install:
    curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
    dnf install -y rabbitmq-server
  7. Enable and start RabbitMQ:
    sudo systemctl enable rabbitmq-server
    sudo systemctl start rabbitmq-server
  8. Enable management plugin: rabbitmq-plugins enable rabbitmq_management.
  9. Configure user/vhost/permissions: Create /etc/rabbitmq/definitions.json with user celery.
    vi definitions.json
    {
        "users": [
            {
                "name": "celery",
                "password_hash": "fa604aceeeaae520de8742410200d620edc4a6101fb2971cd706b4cc19141dce",
                "hashing_algorithm": "rabbit_password_hashing_sha256",
                "tags": "administrator"
            }
        ],
        "vhosts": [
            {
                "name": "/"
            }
        ],
        "permissions": [
            {
                "user": "celery",
                "vhost": "/",
                "configure": ".*",
                "write": ".*",
                "read": ".*"
            }
        ],
        "queues": [],
        "exchanges": [],
        "bindings": []
    }
  10. Point config to definitions file: Add load_definitions = /etc/rabbitmq/definitions.json in rabbitmq.conf.

Rabbitmq-UI

To install the Rabbitmq-UI, follow the steps below:

  1. Update and install Redis:
    dnf update
    dnf install epel-release
    dnf install redis
  2. Start Redis:
    systemctl status redis
    systemctl start redis
  3. Enable remote access: Edit /etc/redis.conf, comment.
    cd /etc
    vi redis.conf
    comment #bind 127.0.0.1
    add bind 0.0.0.0
  4. Install dependencies: dnf install socat logrotate -y.
  5. Install Erlang & RabbitMQ:
    curl -LO -C - https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5/erlang-26.2.5-1.el8.x86_64.rpm
    sudo dnf install ./erlang-26.2.5-1.el8.x86_64.rpm
    curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
    dnf install -y rabbitmq-server
  6. Enable and start RabbitMQ:
    sudo systemctl enable rabbitmq-server
    sudo systemctl start rabbitmq-server
  7. Enable management plugin: rabbitmq-plugins enable rabbitmq_management.
  8. Create definitions file: /etc/rabbitmq/definitions.json with user celery.
    vi definitions.json
    {
        "users": [
            {
                "name": "celery",
                "password_hash": "fa604aceeeaae520de8742410200d620edc4a6101fb2971cd706b4cc19141dce",
                "hashing_algorithm": "rabbit_password_hashing_sha256",
                "tags": "administrator"
            }
        ],
        "vhosts": [
            {
                "name": "/"
            }
        ],
        "permissions": [
            {
                "user": "celery",
                "vhost": "/",
                "configure": ".*",
                "write": ".*",
                "read": ".*"
            }
        ],
        "queues": [],
        "exchanges": [],
        "bindings": []
    }
  9. Link config file: load_definitions = /etc/rabbitmq/definitions.json in rabbitmq.conf.

Scheduler

To install the Scheduler, follow the steps below:

  1. Create data dir and add jar:
    mkdir /data
              cd /data 
              cp scheduler.jar
  2. Create config structure:
    cd /data
    		mkdir /config/scheduler
    		create application.properties
    		create kill-switch.properties
    		create log4j2.xml
    		create 'Report Error.html'
  3. Create TSDB config files:
    mkdir tsdb
      	inside tsdb -> create metricDumper.ini
    		               create metric.ini
  4. Set permissions:
    chown cdpservice:cdpservice /data
            chmod 777 /data/config
  5. Create symbolic link:
    mkdir -p /disk1
            ln -s /data/config /disk1