Skip to content

binhtph/enterprise-lab-environment

 
 

Repository files navigation

██████╗ ██╗   ██╗ ██████╗██╗      █████╗      ██████╗██╗      ██████╗ ██╗   ██╗██████╗ 
██╔══██╗██║   ██║██╔════╝██║     ██╔══██╗    ██╔════╝██║     ██╔═══██╗██║   ██║██╔══██╗
██║  ██║██║   ██║██║     ██║     ███████║    ██║     ██║     ██║   ██║██║   ██║██║  ██║
██║  ██║██║   ██║██║     ██║     ██╔══██║    ██║     ██║     ██║   ██║██║   ██║██║  ██║
██████╔╝╚██████╔╝╚██████╗███████╗██║  ██║    ╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝
╚═════╝  ╚═════╝  ╚═════╝╚══════╝╚═╝  ╚═╝     ╚═════╝╚══════╝ ╚═════╝  ╚═════╝ ╚═════╝ 

📝 Bản quyền và Đóng góp

© 2024 DUCLA CLOUD - All Rights Reserved

📋 Điều khoản sử dụng

  • Nếu copy hoặc sử dụng code từ project này, vui lòng ghi rõ nguồn để tôn trọng tác giả
  • Project này được chia sẻ với mục đích học tập và nghiên cứu

🤝 Đóng góp và Liên hệ

  • Email: ducla.bacha@gmail.com
  • Mọi ý kiến đóng góp và phản hồi đều được hoan nghênh
  • Muốn đóng góp vào project? Hãy gửi email cho tôi với ý tưởng của bạn
  • Báo lỗi hoặc cải tiến: Liên hệ qua email để thảo luận

🌟 Cảm ơn

Cảm ơn bạn đã sử dụng và quan tâm đến project Enterprise Lab Environment!


"Chia sẻ kiến thức là cách tốt nhất để học hỏi và phát triển cùng nhau" - DUCLA CLOUD


Enterprise Lab Environment

Hệ thống tự động hóa xây dựng hạ tầng enterprise hoàn chỉnh sử dụng Vagrant, VirtualBox, Ansible, Docker và các công cụ cloud hiện đại. Được thiết kế đặc biệt để phục vụ:

  • 🎓 Giảng dạy: Môi trường thực hành cho các khóa học DevOps, Cloud, Database
  • 📚 Học tập: Hands-on experience với enterprise technologies
  • 🔬 Nghiên cứu: Test bed cho các giải pháp infrastructure và automation
  • 💼 Thực hành: Simulation môi trường production thực tế
  • 🚀 Triển khai thực tế: Template và best practices cho production deployment

🎯 Quick Start

Sử dụng Menu điều hướng (Khuyến nghị)

./menu.sh                    # Menu tương tác dễ sử dụng

Hoặc sử dụng commands trực tiếp

Cấu trúc Project

enterprise-lab-environment/
├── vagrant-install/           # Cài đặt Vagrant & VirtualBox
├── vm-deployments/           # Triển khai các OS cơ bản
├── oracle-db-deployments/    # Triển khai Oracle Database
├── ansible-deployment/       # Triển khai với Ansible
│   ├── scripts/              # Quản lý Ansible
│   ├── vm-target/           # PostgreSQL đơn lẻ
│   ├── postgres-replica/    # PostgreSQL Master-Replica
│   ├── pacemaker-cluster/   # Pacemaker HA Cluster
│   ├── mysql-deployment/    # MySQL đơn lẻ
│   └── mysql-cluster/       # MySQL Master-Slave
├── container-lab/            # Docker & Kubernetes Lab
│   ├── docker-setup/         # Docker installation
│   ├── minikube-setup/       # Minikube installation
│   └── examples/             # Container examples
├── cloud-tools/              # Cloud Provider Tools
│   ├── aws/                  # AWS CLI, eksctl, CDK
│   ├── azure/                # Azure CLI, Functions
│   ├── gcp/                  # gcloud CLI, Terraform
│   └── common/               # kubectl, Helm, Node.js
└── openstack-deployments/    # OpenStack Deployments
    ├── devstack/             # DevStack (Development)
    ├── kolla-ansible/        # Kolla-Ansible (Containers)
    └── openstack-ansible/    # OpenStack-Ansible (LXC)

1. Cài đặt môi trường

Setup VirtualBox + Vagrant

cd vagrant-install
./setup-complete.sh          # Cài đặt tự động VirtualBox + Vagrant

Setup Ansible

cd ansible-deployment
./setup-ansible.sh           # Cài đặt Ansible

Setup Container Lab

cd container-lab
./setup-container-lab.sh     # Cài đặt Docker + Minikube

Setup Cloud Tools

cd cloud-tools
./setup-cloud-tools.sh all   # Cài đặt AWS + Azure + GCP tools

Setup OpenStack

cd openstack-deployments
./deploy-openstack.sh devstack  # DevStack (development)
./deploy-openstack.sh kolla      # Kolla-Ansible (containers)
./deploy-openstack.sh osa        # OpenStack-Ansible (LXC)

2. Triển khai Virtual Machines

OS cơ bản

cd vm-deployments
./deploy-all.sh              # Oracle Linux 8 + Ubuntu Server 22.04

Oracle Database

cd oracle-db-deployments
./deploy-oracle-db.sh        # Oracle DB 12c Single Instance
./deploy-oracle-rac.sh       # Oracle RAC 12c (2 nodes)

3. Triển khai với Ansible

PostgreSQL đơn lẻ

cd ansible-deployment
./deploy-complete.sh         # VM + PostgreSQL

PostgreSQL Master-Replica

cd ansible-deployment/postgres-replica
./deploy-replica-complete.sh # Master-Replica cluster

Pacemaker HA Cluster

cd ansible-deployment/pacemaker-cluster
./deploy-pacemaker-complete.sh # HA cluster với Oracle Linux

MySQL Database

cd ansible-deployment/mysql-deployment
./deploy-mysql-complete.sh     # MySQL đơn lẻ

MySQL Cluster

cd ansible-deployment/mysql-cluster
./deploy-cluster-complete.sh   # MySQL Master-Slave cluster

4. OpenStack Deployments

DevStack (Development)

cd openstack-deployments
./deploy-openstack.sh devstack  # 1 VM, system services

Kolla-Ansible (Containers)

cd openstack-deployments
./deploy-openstack.sh kolla     # 2 VMs, Docker containers

OpenStack-Ansible (LXC)

cd openstack-deployments
./deploy-openstack.sh osa       # 4 VMs, LXC containers

5. Container Lab

Docker Services

cd container-lab
./start-minikube.sh          # Khởi động Minikube
cd examples && docker-compose up -d  # Docker services

6. Thông tin Services

Service IP Port User/Pass Mô tả
Oracle Linux 8 192.168.56.10 SSH vagrant/vagrant OS cơ bản
Ubuntu Server 22.04 192.168.56.20 SSH vagrant/vagrant OS cơ bản
Oracle DB 12c 192.168.56.30 1521 oracle/oracle123 Single DB
PostgreSQL 192.168.56.40 5432 postgres/postgres123 Single DB
PostgreSQL Master 192.168.56.50 5432 postgres/postgres123 Master DB
PostgreSQL Replica 192.168.56.51 5432 postgres/postgres123 Replica DB
Pacemaker Node 1 192.168.56.60 SSH vagrant/vagrant HA Node 1
Pacemaker Node 2 192.168.56.61 SSH vagrant/vagrant HA Node 2
Pacemaker VIP 192.168.56.62 80 - HA Web Service
MySQL 192.168.56.70 3306 root/mysql123, dbuser/dbpass123 Single DB
MySQL Master 192.168.56.71 3306 root/mysql123, dbuser/dbpass123 Master DB
MySQL Slave1 192.168.56.72 3306 root/mysql123 Slave DB
MySQL Slave2 192.168.56.73 3306 root/mysql123 Slave DB
Docker Nginx localhost 8080 - Container Web
Docker PostgreSQL localhost 5433 labuser/labpass123 Container DB
Minikube Cluster minikube ip varies - Kubernetes
DevStack OpenStack 192.168.56.80 80 admin/admin123 OpenStack AIO
Kolla Controller 192.168.56.81 80 admin/- OpenStack Controller
Kolla Compute 192.168.56.82 SSH vagrant/vagrant OpenStack Compute
OSA Deploy 192.168.56.85 SSH vagrant/vagrant Deployment Node
OSA Infrastructure 192.168.56.86 SSH vagrant/vagrant Infrastructure
OSA Compute 192.168.56.87 SSH vagrant/vagrant Compute Node
OSA Storage 192.168.56.88 SSH vagrant/vagrant Storage Node

7. Quản lý Environment

Kiểm tra trạng thái tất cả VMs

# VM deployments
cd vm-deployments && ./manage-vms.sh status all

# Oracle DB
cd oracle-db-deployments && ./manage-oracle-db.sh status all

# PostgreSQL Replica
cd ansible-deployment/postgres-replica && cd vm-cluster && vagrant status

# Pacemaker Cluster
cd ansible-deployment/pacemaker-cluster && ./cluster-management.sh status all

# MySQL deployments
cd ansible-deployment/mysql-deployment/vm-target && vagrant status
cd ansible-deployment/mysql-cluster/vm-cluster && vagrant status

# Container Lab
cd container-lab && ./test-environment.sh

# OpenStack deployments
cd openstack-deployments/devstack && vagrant status
cd openstack-deployments/kolla-ansible && vagrant status
cd openstack-deployments/openstack-ansible && vagrant status

Dừng tất cả VMs

# Dừng từng nhóm
cd vm-deployments && ./manage-vms.sh stop all
cd oracle-db-deployments && ./manage-oracle-db.sh stop all
cd ansible-deployment/vm-target && vagrant halt
cd ansible-deployment/postgres-replica/vm-cluster && vagrant halt
cd ansible-deployment/pacemaker-cluster/vm-cluster && vagrant halt
cd ansible-deployment/mysql-deployment/vm-target && vagrant halt
cd ansible-deployment/mysql-cluster/vm-cluster && vagrant halt

# Container services
cd container-lab/examples && docker-compose down
minikube stop

# OpenStack services
cd openstack-deployments/devstack && vagrant halt
cd openstack-deployments/kolla-ansible && vagrant halt
cd openstack-deployments/openstack-ansible && vagrant halt

8. Testing & Validation

Test PostgreSQL Replication

cd ansible-deployment/postgres-replica
./test-replication.sh

Test Pacemaker Failover

cd ansible-deployment/pacemaker-cluster
./test-failover.sh

Test MySQL Replication

cd ansible-deployment/mysql-cluster
./test-replication.sh

Test Database Connections

# PostgreSQL
psql -h 192.168.56.40 -U postgres -d testdb

# PostgreSQL Master-Replica
psql -h 192.168.56.50 -U postgres -d testdb  # Master
psql -h 192.168.56.51 -U postgres -d testdb  # Replica

# MySQL databases
mysql -h 192.168.56.70 -u dbuser -p testdb     # MySQL single
mysql -h 192.168.56.71 -u dbuser -p testdb     # MySQL master
mysql -h 192.168.56.72 -u root -p testdb       # MySQL slave1

# Container services
psql -h localhost -p 5433 -U labuser -d labdb  # Docker PostgreSQL
curl http://localhost:8080  # Docker Nginx

# OpenStack services
curl http://192.168.56.80  # DevStack Dashboard
curl http://192.168.56.83  # Kolla Dashboard
curl http://192.168.56.100 # OSA Dashboard

9. Yêu cầu hệ thống

  • OS: Ubuntu/Debian Linux
  • RAM: Tối thiểu 16GB (khuyến nghị 64GB cho OpenStack)
  • CPU: Tối thiểu 4 cores (khuyến nghị 8 cores)
  • Disk: Tối thiểu 100GB free space
  • Network: Internet connection để tải packages

10. Troubleshooting

Kiểm tra VirtualBox

vboxmanage --version
vboxmanage list vms

Kiểm tra Vagrant

vagrant --version
vagrant global-status

Kiểm tra Ansible

ansible --version
ansible-inventory --list

Kiểm tra Container Lab

docker --version
minikube status
kubectl version --client

Kiểm tra Cloud Tools

cd cloud-tools && ./check-cloud-tools.sh

Reset environment

# Xóa tất cả VMs
vagrant global-status --prune
vagrant destroy -f

11. Best Practices

  • Luôn kiểm tra resource availability trước khi deploy
  • Sử dụng snapshot VMs trước khi thay đổi cấu hình
  • Monitor resource usage trong quá trình chạy
  • Backup cấu hình quan trọng
  • Sử dụng proper shutdown sequence

12. Support

Mỗi folder có README.md riêng với hướng dẫn chi tiết:

About

Enterprise Lab Environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 98.4%
  • HTML 1.6%