Git Product home page Git Product logo

ib-cicd-static-website's Introduction

Vous disposez d'un site web statique disponible à cette adresse : https://github.com/diranetafen/static-website-example.git

Le but de ce projet est de mettre en place un pipeline complet cicd sur votre application. La CICD devra conteneuriser l'application.

- un squelette de Dockerfile  vous ai fournie, il faut le compléter
    Il faudra refaire exactement les même étapes que celles dans le cours, à quelques différences prêt : 
- Pour lancer le conteneur après le build, voici un exemple de commande : 
    docker run --name cont_name -d -e PORT=80 -p 80:80 choco1992/$IMAGE_NAME:$IMAGE_TAG 

- Le déploiement en staging et production sera fait sur des VMs et non dans Heroku
- On utilisera Ansible pour se faciliter la vie
  - qui dit ansible dit créer des playbooks dans le repos git

Pour vous aider, un vagranfile vous est fourni, ce dernier déploie : - Le serveur jenkins, avec docker et ansible installé sur ce dernier - Les deux serveurs de Staging et de Production, aucun outil d'installé sur ces serveurs - Les trois serveurs sont joignables au niveau réseau

Aide : Pour la partie déploiement avec ansible uniquement - Un exemple d'inventaire, ansible.cfg, host_vars et group_vars sont fournis, vous pouvez vous en inspirer... - Le playbook d'installation de docker (docker.yml) est fourni dans le dossier "ressources ansible" - Un utilisateur jenkins existe sur les 3 machines crées, il sera utilisé comme user de connexion ansible - Le répertoire personnel du user jenkins est "/var/lib/jenkins" sur les 3 serveurs - Cet utilisateur Jenkins ne possède pas de mot de passe, mais une paire de clés ssh. - Le couple de clés se trouve donc dans /var/lib/jenkins/.ssh - La clés publique est disponible sur les serveurs worker1 et worker2

        - Pour passer la clés dans les commandes ansible, utiliser l'option : --private-key <fichier de la clés privée>
            * Example : 
                ansible all -m ping --private-key /var/lib/jenkins/.ssh/id_rsa 


- !!!!!!  Si vous utilisez un agent docker pour l'étape de build!!!! , alors: 
    - la clés privée pourr être rajoutée comme secret dans le serveur jenkins, et être récupérée dans une variable
        * Exemple : 
                PRIVATE_KEY = credentials('private_key')
    - Cette clé privée  pourrait être passée dans les commandes ansible pour se connecter aux machines, vous pouvez la récupéer dans votre projet si vous le souhaiter (c'est pas obloigatoire), comme suit : 
        echo $PRIVATE_KEY > id_rsa
        chmod 600 id_rsa

ib-cicd-static-website's People

Contributors

ulrichmonji avatar danielmagloire 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.