This guide will help you quickly set up and run Your On-Prem Cluster. Follow the steps below to get started.
-
Jump Server: You will need an Ubuntu 20.04 machine to serve as the jump server. This server will act as a central point for managing and configuring other machines in your environment.
-
Additional VMs: You should have at least two additional Virtual Machines (VMs), each running Ubuntu 20.04. These VMs should have a minimum of 2 vCPUs and 4GB of RAM to ensure smooth operation of the Dstny engage On-Prem solution.
First, clone this repository to your local machine:
git clone https://github.com/tactful-ai/on-prem.git
Change your current directory to the cloned repository:
cd on-prem
To ensure proper permissions for the setup, become the root user using sudo -i
:
sudo -i
make sure that you are root for all of the next steps.
Copy the SSH key for the specified machines to your ~/.ssh/key.pem
. Make sure to adjust the file path and permissions:
cp path/to/your/ssh_key.pem ~/.ssh/key.pem
chmod 400 ~/.ssh/key.pem
Edit the user_fill.sh
file to add information about your machines. You can specify your machine details using one of the following formats:
-
Password-based authentication:
node_info[0]="ip_address|password|user|node_name"
-
SSH key-based authentication:
node_info[0]="ip_address|ssh_key_path|user|node_name"
Example:
node_info[0]="xxx.xx.xx.xx|password|remote_machine_username|node_name"
Now, you're ready to start the setup process. Run the following command:
bash dstny.sh
Watch the magic ✨✨✨.
Dstny engage On-Prem offers a selection of services and components that you can choose to install based on your specific requirements. Below are the available services and systems:
You can choose the storage system you want to install:
-
Longhorn: A distributed block storage system for Kubernetes.
-
None: If you don't want to install any storage system, select "None."
STORAGE_SYSTEM="longhorn"
You can choose the load balancer system you want to install:
-
MetalLB: A load balancer implementation for bare-metal Kubernetes clusters.
-
None: If you don't want to install any load balancer system, select "None."
LOAD_BALANCER="metallb"
You can choose the monitoring system you want to install:
-
Prometheus: An open-source monitoring and alerting toolkit designed for reliability and scalability. Note: Grafana is installed along with Prometheus.
-
None: If you don't want to install any monitoring system, select "None."
MONITORING_SYSTEM="prometheus"
You can choose whether or not to install Redis. If you want to install Redis, set the following option to "yes."
INSTALL_REDIS="yes"
Choose the services and systems that align with your deployment needs and set the corresponding options in your configuration before running the setup script.
The config.sh
file allows you to configure various aspects of the Dstny engage On-Prem solution to match your specific requirements. This guide provides an overview of each section in the configuration file and what you can customize within them.
In this section, you can customize basic information related to your main machine and the Ansible inventory.
ANSIBLE_INVENTORY_FILE
: Specify the path to the Ansible inventory file.
This section is responsible for configuring the Rancher Kubernetes Engine (RKE).
-
CLUSTER_FILES_LOCATION
: Specify the location for the generated cluster configuration files. -
CLUSTER_NAME
: Define the name for your Kubernetes cluster. -
KUBERNETES_VERSION
: Set the desired Kubernetes version. -
DOCKER_PATH
: Specify the path to the Docker socket. -
NETWORK_PLUGIN
: Choose a network plugin (e.g., "canal"). -
SSH_KEY_PATH
: Define the path to your SSH key. -
SSH_AGENT_AUTH
: Enable or disable SSH agent authentication. -
RKE_VERSION
: Set the RKE version. -
CLUSTER_CIDR
: Configure the cluster CIDR. -
SERVICE_CLUSTER_IP_RANGE
: Define the service cluster IP range. -
CLUSTER_DNS_SERVER
: Specify the DNS server for the cluster. -
METALLB_IP_RANGES
: Configure MetalLB IP ranges (if using). -
IP_ADDRESSES_POOL_LOCATION
: Set the location for MetalLB IP address pool configuration. -
RKE_ADDONS_INCLUDE
: Specify URLs for RKE addons. -
INGRESS_PROVIDER
: Choose the Ingress controller provider (e.g., "nginx"). -
INGRESS_NETWORK_MODE
: Configure the Ingress network mode. -
ADDONS_DIRECTORY
: Define the directory for addons.
This section is related to configuring Longhorn, a distributed block storage system for Kubernetes.
-
LONGHORN_FILES_LOCATION
: Specify the location for Longhorn files. -
LONGHORN_STORAGE_CLASS_NAME
: Set the Longhorn storage class name.
Here, you can configure MetalLB, a load balancer implementation for bare-metal Kubernetes clusters.
METALLB_FILES_LOCATION
: Specify the location for MetalLB files.
This section allows you to customize settings related to Prometheus and Grafana.
-
PROMETHEUS_GRAFANA_FILES_LOCATION
: Set the location for Prometheus and Grafana files. -
K8s_VERSION
: Automatically derived fromKUBERNETES_VERSION
. -
DASHBOARDS_DIRECTORY
: Specify the directory for Grafana dashboards. -
MONITOR_NAMESPACE
: Set the monitoring namespace. -
GRFANA_SVC
: Define the Grafana service type. -
GRAFANA_ADMIN_PASSWORD
: Set the Grafana admin password. -
GRAFANA_CONFIG_MAPS_DIRECTORY
: Specify the directory for Grafana config maps.
By customizing these sections, you can tailor the Dstny engage On-Prem solution to meet your specific infrastructure and configuration preferences.