This repository aims to teach how to create a virtual datacenter for learning devops tools and other academic applications. The datacenter is composed of a main virtual machine (VM) called Saturn and several other VMs that represent the moons of Saturn. Each VM has a specific function in the datacenter, such as firewall, router, web server, database, etc.
We will use Ubuntu 20.04 LTS to run this lab at the moment, but we can add support for Windows later. To follow this tutorial, you will need:
- A computer with internet access.
- Minimum computer requirements to run the virtual datacenter:
- Processor: at least an octacore.
- RAM: minimum 8 GB, recommended 16 GB.
- Disk space: minimum 100 GB free, note. this value is dynamic so it will vary depending on what is stored in the datacenter machines.
- Basic knowledge in linux
- Willingness to learn.
List the dependencies
- Virtual box
- Netplan
- ssh
under construction
The virtual datacenter can be used to learn about devops tools and other academic applications. For example, you can:
- Install and configure tools such as Docker, Kubernetes, Ansible, Jenkins, etc. on the VMs and use them to create and manage development and production environments.
- Simulate attacks and defenses on the network using tools such as Nmap, Metasploit, Snort, Suricata, etc. and analyze the logs and alerts generated by pfSense.
- Create and host websites and web applications using tools such as Apache, Nginx, PHP, MySQL, WordPress, etc. on the VMs and access them from the internet or the local network.
- Study network concepts and protocols using tools such as Wireshark, Tcpdump, Netcat, etc. and observe the traffic between the VMs.
Status of resources and tools that will be included in the
- Rede própria
- pfSense 2.6
- Ubuntu Server 20.04 LTS
- Docker
- Portainer
- Bind9
- Swarm
- Zabbix 6 LTS
- Graylog 5
- Jenkins
- Git
- Ansible
- Terraform
- Grafana
- Kubernetes
The datacenter will be divided into 3 versions depending on the desired use depending on the objective of use being:
In this version, you can create a lean datacenter with the minimum resources of operation for those who want to customize their datacenter as much as possible by hand. The resources are:
- Own network - An isolated network that connects the datacenter VMs.
- Bind9 - A DNS server software that allows you to resolve domain names to IP addresses.
- Ubuntu Server 20.04 LTS - A lightweight and stable operating system for VMs.
- pfSense 2.6 - A firewall and network router software that allows you to manage the traffic and security of the network.
In this version, you can create a more complete virtual datacenter, with the same tools as the minimal version, plus some tools to automate and manage the containers.
Resources:
- Own network - An isolated network that connects the datacenter VMs.
- Bind9 - A DNS server software that allows you to resolve domain names to IP addresses.
- Ubuntu Server 20.04 LTS - A lightweight and stable operating system for VMs.
- pfSense 2.6 - A firewall and network router software that allows you to manage the traffic and security of the network.
- Zabbix 6 LTS - A network monitoring system that allows you to collect and analyze performance and availability data from VMs and containers.
- Graylog 5 - A log management system that allows you to collect and analyze logs from VMs and containers.
- Docker - A container platform that allows you to package and run applications in an isolated and portable way.
- Swarm - A container orchestrator that allows you to manage a cluster of VMs as a single entity.
- Portainer - A graphical interface for managing Docker and Swarm containers.
In this version, you can create an advanced virtual datacenter, with all the tools from the previous versions, plus some tools to monitor and analyze the performance and logs of the VMs and containers, as well as automate and integrate the development and delivery of software.
Resources:
- Own network - An isolated network that connects the datacenter VMs.
- Bind9 - A DNS server software that allows you to resolve domain names to IP addresses.
- Ubuntu Server 20.04 LTS - A lightweight and stable operating system for VMs.
- pfSense 2.6 - A firewall and network router software that allows you to manage the traffic and security of the network.
- Docker - A container platform that allows you to package and run applications in an isolated and portable way.
- Swarm - A container orchestrator that allows you to manage a cluster of VMs as a single entity.
- Portainer - A graphical interface for managing Docker and Swarm containers.
- Zabbix 6 LTS - A network monitoring system that allows you to collect and analyze performance and availability data from VMs and containers.
- Graylog 5 - A log management system that allows you to collect and analyze logs from VMs and containers.
- Jenkins - A continuous integration and delivery tool that allows you to automate the software lifecycle.
- Git - A distributed version control system that facilitates the management and sharing of source code.
- Ansible - An IT automation tool that allows you to configure and manage servers, applications and infrastructure.
- Terraform - A tool for creating, changing and versioning infrastructure with security and efficiency.
- Grafana - A data visualization tool that allows you to create interactive dashboards and charts from various data sources.
- Kubernetes - A container orchestration system that allows you to automate the deployment, scaling and management of containerized applications.
This repository is an open and collaborative project. You can contribute with suggestions, corrections, improvements or new features. For that, you can:
- Open an issue reporting a problem or requesting a change.
- Fork the repository and submit a pull request with your changes.
- Contact the author of the repository by email or social networks.
Mention all those who helped lift the project from its inception
- developer - Initial Work - Kaio Guilherme
This project is under the license (MIT) - see the file LICENSE.md for details.