Giter VIP home page Giter VIP logo

iac-homelab's Introduction

iac-homelab

Objectifs

L’objectif principal de ce projet est de vous aider à monter en compétences sur les outils que l’on utilise le plus souvent dans la mise en place d’une démarche Devops :

  • Docker pour construire les images qui seront utilisé dans les pipelines CI/CD
  • Vagrant pour instancier sur votre PC de travail des stacks complètes sur des machines virtualisées en utilisant libvirt.
  • Terraform pour créer les machines virtuelles sur les mini-pc et cela par la suite chez des clouders
  • GitLab et GitHub pour faire tourner les pipelines CI/CD
  • Ansible pour configurer les machines virtuelles
  • Kubernetes pour apprendre à installer et à gérer des applications Cloud Natives.
  • Prometheus pour le monitoring.
  • D'autres outils au besoin.

Composition de Mon Home Lab

Mon Home Lab Devops se compose actuellement de :

Sur le premier mini-pc tourne :

  • un k3s mono noeud hébergeant les runnrs gitlab et Ansible AWX
  • un serveur NFS pour y déposer les données persistantes

Sur le second :

  • Libvirt est activé et prêt à héberger des applications à la demande du type : Nexus Repository Manager, Rundeck (en cours d'écriture). D'autres vont suivre. Le tout sera instancié avec du Terraform.

Provisionnement des machines

J'ai fait l'installation de la version server d'Ubuntu 21.10 avec juste le package OpenSSH (synchro des clés depuis mon compte github). J'ai autorisé le compte admuser, créé pendant l'installation, à utiliser sudo sans mot de passe.

Pour simplifier la gestion des machines :

  • Sur ma box internet, j'ai alloué des baux statiques.
  • J'ai ajouté au fichier /etc/hosts de la machine depuis laquelle je fais l'administration les adresses IP.

Première Installation

Clonez ce repository sur votre machine servant à l'installation.

git clone https://gitlab.com/b4288/infra-as-code-homelab.git

Avant de passer à l'installation il faut générer des certificats avec mkcert

asdf plugin add mkcert https://github.com/salasrod/asdf-mkcert.git
asdf install mkcert latest
asdf global mkcert latest

Génération du CA

mkcert -install

cd certificats mkcert 'devbox1.robert.local' localhost 127.0.0.1 ::1 mkcert 'devbox2.robert.local' localhost 127.0.0.1 ::1


Une fois les machines provisionnées les installations sont faites avec
**Ansible** :

```bash
## Installation des outils de base
ansible-playbook -i inventory playbooks/install.yml
## Installation de Kubernetes et Libvirt
ansible-playbook -i inventory playbooks/provision.yml

Avant, il faudra certainement adapter certaines choses dans les playbooks ou dans l'inventaire.

Vous pouvez aussi utiliser le Vagrantfile pour tester le tout avant :

vagrant up
# On utilise l'inventaire généré par vagrant
ansible-playbook -i ./.vagrant/provisioners/ansible/inventory playbooks/install.yml

La suite

L'automatisation de tout le reste AWX, Gitlab runners, Nexus, Rundeck, ...

iac-homelab's People

Contributors

osmoos avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.