██████╗ ██╗ ██╗ ██████╗██╗ █████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗
██╔══██╗██║ ██║██╔════╝██║ ██╔══██╗ ██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗
██║ ██║██║ ██║██║ ██║ ███████║ ██║ ██║ ██║ ██║██║ ██║██║ ██║
██║ ██║██║ ██║██║ ██║ ██╔══██║ ██║ ██║ ██║ ██║██║ ██║██║ ██║
██████╔╝╚██████╔╝╚██████╗███████╗██║ ██║ ╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝
╚═════╝ ╚═════╝ ╚═════╝╚══════╝╚═╝ ╚═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝
© 2024 DUCLA CLOUD - All Rights Reserved
- 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
- 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 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
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
./menu.sh # Menu tương tác dễ sử dụngenterprise-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)
cd vagrant-install
./setup-complete.sh # Cài đặt tự động VirtualBox + Vagrantcd ansible-deployment
./setup-ansible.sh # Cài đặt Ansiblecd container-lab
./setup-container-lab.sh # Cài đặt Docker + Minikubecd cloud-tools
./setup-cloud-tools.sh all # Cài đặt AWS + Azure + GCP toolscd openstack-deployments
./deploy-openstack.sh devstack # DevStack (development)
./deploy-openstack.sh kolla # Kolla-Ansible (containers)
./deploy-openstack.sh osa # OpenStack-Ansible (LXC)cd vm-deployments
./deploy-all.sh # Oracle Linux 8 + Ubuntu Server 22.04cd oracle-db-deployments
./deploy-oracle-db.sh # Oracle DB 12c Single Instance
./deploy-oracle-rac.sh # Oracle RAC 12c (2 nodes)cd ansible-deployment
./deploy-complete.sh # VM + PostgreSQLcd ansible-deployment/postgres-replica
./deploy-replica-complete.sh # Master-Replica clustercd ansible-deployment/pacemaker-cluster
./deploy-pacemaker-complete.sh # HA cluster với Oracle Linuxcd ansible-deployment/mysql-deployment
./deploy-mysql-complete.sh # MySQL đơn lẻcd ansible-deployment/mysql-cluster
./deploy-cluster-complete.sh # MySQL Master-Slave clustercd openstack-deployments
./deploy-openstack.sh devstack # 1 VM, system servicescd openstack-deployments
./deploy-openstack.sh kolla # 2 VMs, Docker containerscd openstack-deployments
./deploy-openstack.sh osa # 4 VMs, LXC containerscd container-lab
./start-minikube.sh # Khởi động Minikube
cd examples && docker-compose up -d # Docker 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 |
# 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ừ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 haltcd ansible-deployment/postgres-replica
./test-replication.shcd ansible-deployment/pacemaker-cluster
./test-failover.shcd ansible-deployment/mysql-cluster
./test-replication.sh# 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- 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
vboxmanage --version
vboxmanage list vmsvagrant --version
vagrant global-statusansible --version
ansible-inventory --listdocker --version
minikube status
kubectl version --clientcd cloud-tools && ./check-cloud-tools.sh# Xóa tất cả VMs
vagrant global-status --prune
vagrant destroy -f- 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
Mỗi folder có README.md riêng với hướng dẫn chi tiết: