This project is an automated solution for deploying, operating, and managing scalable and resilient cloud-based service infrastructure within an OpenStack environment.
Key Features
- Automated Deployment: Utilizes Ansible playbook and bash/shell scripts to set up a cloud environment in OpenStack automatically, including creating networks, routers, subnets, security groups, servers/nodes.
- High Availability and Load Balancing: Implements load balancing with HAProxy and high availability with Keepalived across dual proxy nodes to eliminate a single point of failure.
- Secure Access: Configures a BASTION host for secure SSH access to instances and centralized monitoring using Prometheus and Grafana.
- Resource Cleanup: Includes script to clean up and release all resources allocated during the deployment phase, ensuring no residual resources are left behind.
Project Components 'install' Script: Automates the deployment of the entire environment, including network setup, instance creation, and service configuration. 'operate' Script: Manages the ongoing operations, including dynamic scaling and monitoring of service nodes. 'cleanup' Script: Removes all resources and cleans up the environment after use. Monitoring Configuration: Integrates Prometheus and Grafana for monitoring the deployed services and infrastructure. Load Balancing Configuration: Configures HAProxy and Keepalived for load balancing.
Working
- Deployment: Run the 'install' script with OpenStack credentials(open-rc file), which sets up the environment and deploys the necessary services.
- Operation: The 'operate' script monitors the system, and adjusts the number of service nodes as mentioned in the 'server.conf' file.
- Cleanup: The 'cleanup' script releases all resources, returning the cloud environment to its original state.
Usage Instructions
- Provide permissions to install, operate, and cleanup script files.
chmod +x install operate cleanup
- Generate ssh keys, the ssh keys are to be present in the working directory
ssh-keygen -t rsa
- open-rc file to be present in the working directory
source <name of open-rc file>
- To run install script
./install <name of open-rc file> <tag> <generated key>
- To run operate script
./operate <name of open-rc file> <tag> <generated key>
- To run cleanup script
./cleanup <name of open-rc file> <tag> <generated key>
Requirements
sudo apt update
sudo apt install python3-openstackclient -y
sudo apt install jq -y
sudo apt install ansible -y