Public | Automated Build

Last pushed: a year ago
Short Description
Plateforme d'intégration continue
Full Description

Plateforme d'intégration continue

Ce projet permet de créer une plateforme d'intégration continue (PIC) contenue dans une image Docker.

Plugins pour jenkins

Le jenkins de la PIC est fourni avec un ensemble de plugins nécessaires à l'organistion.

Les plugins sont listés dans le fichier plugins.txt et installés grâce au script /usr/local/bin/plugins.sh fourni avec l'image Docker de Jenkins.

Le script n'étant pas transitif il faut lister l'ensemble des dépendances de chaque plugin pour que leur installation soit effective.

Maven Integration Plugin

Ce plugin permet de créer des jobs de type projet maven.

Configuration de Jenkins

Pour configurer Maven, JDK, etc. il faut, depuis la version 2.x de jenkins aller dans Global Tools

Autoriser l'accès au port 4243 de docker

https://www.digitalocean.com/community/tutorials/how-to-dockerise-and-deploy-multiple-wordpress-applications-on-ubuntu

Créer un esclave

  1. Créer un couple clé privée / clé publique ;
  2. Ajouter la clé privée dans DigitalOcean ;
  3. Créer un droplet sur DigitalOcean en précisant la clé ssh à utiliser (qui sera la clé du root) :
    curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer **LICENCE_KEY**"
     -d '{"name":"jenkins-slave", "region":"fra1", "size":"512mb", "image":"ubuntu-16-04-x64"
     ,"ssh_keys":["**SSH_FINGERPRINT**"], "backups":false, "ipv6":false,
     "user_data":null, "private_networking":null, "volumes": null}' "https://api.digitalocean.com/v2/droplets"
  1. SI la clé SSH a un nom différent de id_rsa, utiliser la commande suivante pour se connecter en root sur le droplet :

     ssh -i CHEMIN_VERS_FICHER_CLE_PRIVEE_SSH root@IP_DROPLET
    
  2. SINON, se connecter au droplet avec root simplement :

     ssh root@IP_DROPLET
    
  3. [SLAVE] Créer un utilisateur jenkins-slave :

       adduser jenkins-slave
    
  4. [SLAVE] Se loguer avec l'utilisateur jenkins-slave :

       su jenkins-slave
    
  5. [SLAVE] Créer le répertoire /home/jenkins-slave/jenkins-slave-home ;

  6. [MASTER] Créer un couple clé privée/clé publique :

      ssh-keygen -t rsa
    
  7. [MASTER] Ajouter la clé publique dans les authorized_keys de l'esclave

    ssh-copy-id -i CHEMIN_VERS_FICHER_CLE_PRIVEE_SSH jenkins-slave@IP_DROPLET
  1. [JENKINS] Dans le jenkins maître :

    1. Administrer jenkins > Gérer les noeuds > Créer un noeud,
    2. Nommer le noeud jenkins_slave,
    3. Sélectionner Permanent agent puis OK,
    4. Nombre d'exécuteurs : 1,
    5. Répertoire de travail du système distant : /home/jenkins-slave/jenkins_slave_home,
    6. Méthode de lancement : Launch slave agents on Unix machines via SSH,
    7. host : IP_DROPLET,
    8. Credentials : cliquer sur Ajoute > jenkins :
      • Type : SSH username with private key,
      • Username : jenkins-slave,
      • Private key : Enter directly,
      • Key : copier-coller la clé privée de la clé SSH créée pour l'esclave,
      • Passphrase : enter the ssh key passphrase,
      • Cliquer sur Ajouter ;
    9. Crédentials : jenkins-slave,
    10. Enregistrer.

    Si l'authentification échoue, il est toujours possible de revenir sur les credentials : depuis le dashboard Identifiants, cliquer sur le nom du crédentials, Mettre à jour, effectuer les modifications puis Sauvegarder. Ensuite, revenir au Dashboard, Administrer jenkins > Gérer les noeuds, cliquer sur le nom du noeud puis sur Launch agent. Si ce bouton n'est pas présent c'est que le noeud est opérationnel.

Docker Pull Command
Owner
rfagot
Source Repository

Comments (0)