VictorMorenoJimenez / tfg2020

Final Degree Project ETSIIT Granada
GNU General Public License v3.0
2 stars 0 forks source link

Build Status

Final Degree Project.

The purpose of this repository is to host the end of degree project in Computer Engineering from the Higher School of Informatics and Telecommunications of Granada.

The main objective of this work can be divided into different parts.

Anyway, to make this repository more readable, it will be divided into three blocks that are explained below.

Part 1. Automatic server provisioning and deployment with Ansible Playbooks.

Summarizing this part, configure a Hetzner server from scratch, installing and configuring the virtualization service proxmox. For more detail follow the links below.

Playbooks:

How to

---
all:
    hosts:
    children:
        proxmox_master:
            hosts:
                node1.yourdomain.com:
                    ansible_host: node1.yourdomain.com 
                    ansible_user: root
                    node: node1
        proxmox_slave:
            hosts:
                node2.yourdomain.com:
                    ansible_host: node2.yourdomain.com 
                    ansible_user: root
                    node: node2
        proxmox_nodes:
            hosts:
                node3.yourdomain.com:
                    ansible_host: node3.yourdomain.com  
                    ansible_user: root
                    node: node3
        proxmox:
            hosts:
                node1.yourdomain.com:
                node2.yourdomain.com:
                node3.yourdomain.com:
    make PLAYBOOK=configure_proxmox_nodes TAGS=all playbook

Part 2. Automatic services deployment with Ansible Playbooks

If Part 1 is completed, we should have:

This second part includes:

Ideally the infrastructure should look like:

Redundant infrastructure

Includes:

Playbooks:

How to

This part includes the deployment of many services on the Proxmox cluster. You may want to deploy all of some of them. Each service is managed by an Ansible playbook and has a role associated. Check each playbook doc to learn how to deploy each service.

Part 3. CI/CD pipeline for Django project.

Dockerize app

This project is for Django + Angular application. Check dockerize app to learn how to dockerize a Django + Angular app.

Gitlab CI.

Thanks to the deployment of servies of part 2, we have GitLab on our cluster and we are going to configure it in order to create CI/CD pipelines. Check gitlab ci to learn how to create CI/CD pipelines for a containerized app.