Comment installer et configurer GoCD sur Ubuntu 16.04

GoCD est un système open source de livraison et d'automatisation continue. Il vous permet de modéliser des workflows complexes en utilisant son exécution parallèle et séquentielle. Sa carte de flux de valeur vous permet de visualiser facilement un flux de travail complexe avec facilité. GoCD vous permet de comparer facilement deux versions et de déployer n'importe quelle version de l'application que vous souhaitez. L'écosystème GoCD se compose d'un serveur GoCD et d'un agent GoCD. Le GoCD est responsable de tout contrôler, comme l'exécution de l'interface utilisateur Web et la gestion et la fourniture de tâches à l'agent. Les agents Go sont responsables de l'exécution des travaux et des déploiements.

Conditions préalables

  • Une instance de serveur Vultr Ubuntu 16.04 avec au moins 2 Go de RAM.
  • Un utilisateur sudo .
  • Un nom de domaine pointé vers le serveur.

Pour ce didacticiel, nous utiliserons 192.168.1.1comme adresse IP publique et gocd.example.com comme nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine et de l'adresse IP par celui-ci.

Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, installez Java.

Installer Java

GoCD nécessite Java version 8 et prend en charge Oracle Java et OpenJDK. Ajoutez le référentiel Ubuntu pour Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Installez Oracle Java.

sudo apt -y install oracle-java8-installer

Vérifiez la version.

java -version

Vous verrez la sortie suivante.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Définissez le chemin par défaut pour Java en installant le package suivant.

sudo apt -y install oracle-java8-set-default

Vous pouvez vérifier si JAVA_HOMEest défini en exécutant.

echo $JAVA_HOME

Tu verras.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Si vous ne voyez aucune sortie, vous devrez vous déconnecter du shell actuel et vous reconnecter.

Installer GoCD

Installez le référentiel officiel de GoCD dans le système.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

Installez le serveur GoCD dans votre système.

sudo apt install -y go-server

Démarrez GoCD et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start go-server
sudo systemctl enable go-server

Avant d'accéder au tableau de bord GoCD, créons un nouveau répertoire pour stocker les artefacts. Les artefacts peuvent être stockés sur le même disque sur lequel le système d'exploitation et les applications sont installés. Vous pouvez également utiliser un disque dédié ou un lecteur de stockage en bloc pour stocker les artefacts.

Si vous souhaitez utiliser le même disque pour stocker les artefacts, créez simplement un nouveau répertoire et fournissez la propriété à l'utilisateur GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Configurer le stockage en bloc

Le logiciel GoCD vous recommande d'utiliser une partition ou un lecteur supplémentaire pour stocker les artefacts. Dans une plateforme d'intégration et de livraison continue, les artefacts sont générés très souvent. L'espace disque diminue avec le temps lorsque de nouveaux artefacts sont générés en continu. À un certain stade, votre système manquera d'espace disque libre et les services exécutés sur votre système échoueront. Pour résoudre ce problème, vous pouvez attacher un nouveau lecteur de stockage en bloc Vultr pour stocker les artefacts. Si vous souhaitez toujours utiliser le stockage d'artefacts sur le même lecteur, passez à la section "Configurer GoCD".

Déployez un nouveau lecteur de stockage en mode bloc et connectez-le à votre instance de serveur GoCD. Créez maintenant une nouvelle partition sur le périphérique de stockage de blocs.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Créez le système de fichiers sur le nouveau disque.

sudo mkfs.ext4 /dev/vdb1

Montez le lecteur de stockage en mode bloc.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

Maintenant, exécutez dfet vous verrez le nouveau lecteur de stockage en bloc monté /mnt/artifacts.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

Attribuez la propriété de l'annuaire à l'utilisateur du GoCD.

sudo chown -R go:go /mnt/artifacts

Configurer GoCD

Vous pouvez maintenant accéder au tableau de bord GoCD sur http://192.168.1.1:8153. Pour accéder au tableau de bord GoCD sur une connexion sécurisée, accédez à https://192.168.1.1:8154. Vous obtiendrez une erreur indiquant que les certificats ne sont pas valides. Vous pouvez ignorer l'erreur en toute sécurité car les certificats sont auto-signés. Pour des raisons de sécurité, vous devez toujours utiliser le tableau de bord sur une connexion sécurisée.

Avant de configurer un nouveau pipeline, accédez à " Admin >> Server Configuration" dans la barre de navigation supérieure.

Saisissez l'URL de votre site non sécurisé dans le Site URLchamp " " et le site sécurisé dans le Secure Site URLchamp " ".

Comment installer et configurer GoCD sur Ubuntu 16.04

Ensuite, fournissez les détails de votre serveur SMTP pour envoyer des notifications par e-mail à partir du GoCD.

Comment installer et configurer GoCD sur Ubuntu 16.04

Enfin, indiquez le chemin d'accès à l'emplacement où vous souhaitez stocker les artefacts. Si vous avez choisi de stocker les artefacts sur le même disque que le système d'exploitation, entrez /opt/artifacts; si vous avez choisi de connecter un lecteur de stockage en mode bloc, vous pouvez entrer /mnt/artifacts.

Vous pouvez également configurer GoCD pour supprimer automatiquement les anciens artefacts. Configurez l'option suivante en fonction de la taille de votre disque. Cependant, l'option de suppression automatique ne prend pas de sauvegarde de vos anciens artefacts. Pour effectuer manuellement une sauvegarde, puis supprimer les anciens artefacts, désactivez la suppression automatique en choisissant l' Neveroption " " pour l' Auto delete old artifactsoption " ".

Comment installer et configurer GoCD sur Ubuntu 16.04

Vous devrez redémarrer le serveur GoCD pour que les nouvelles modifications soient appliquées.

sudo systemctl restart go-server

Authentification de configuration

Par défaut, le tableau de bord GoCD n'est pas configuré pour utiliser tout type d'authentification, mais il prend en charge l'authentification à l'aide d'un fichier de mots de passe et LDAP. Dans ce didacticiel, nous allons configurer l'authentification par mot de passe.

Remarque : La configuration de l'authentification est une étape facultative, mais elle est fortement recommandée pour les serveurs publics, tels que Vultr.

Installez les outils Apache afin que nous puissions utiliser la htpasswd commande pour créer un fichier de mot de passe chiffré.

sudo apt -y install apache2-utils

Créez un fichier de mots de passe avec la htpasswd commande à l'aide du chiffrement Bcrypt.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Indiquez deux fois le mot de passe de l'utilisateur. Vous verrez la sortie suivante.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Vous pouvez ajouter autant d'utilisateurs que vous le souhaitez en utilisant la même commande ci-dessus, mais supprimez l' -c option. L' -c option remplacera le fichier existant, remplaçant les anciens utilisateurs par le nouvel utilisateur.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Maintenant que nous avons créé le fichier de mots de passe, accédez à nouveau au tableau de bord GoCD. Accédez à " Admin >> Security >> Authorization Configurations" dans la barre de navigation supérieure. Cliquez sur le Add bouton et fournissez n'importe quel ID. Choisissez " Password File Authentication Plugin for GoCD" pour l'ID du plugin et dirigez le chemin vers le fichier de mot de passe. Cliquez maintenant sur le Check Connectionbouton "" pour vérifier que le GoCD peut utiliser le fichier de mot de passe pour l'authentification.

Comment installer et configurer GoCD sur Ubuntu 16.04

Enfin, enregistrez la méthode d'authentification. Rechargez le tableau de bord et il vous déconnectera automatiquement. Vous verrez maintenant un écran de connexion. Connectez-vous à l'aide des informations d'identification créées précédemment.

Vous devrez promouvoir l'utilisateur administrateur manuellement, sinon tous les utilisateurs auront des privilèges d'administrateur. Accédez à " Admin >> User Summary" dans la barre de navigation supérieure.

Sélectionnez maintenant l'administrateur que vous avez créé et cliquez sur le Rolesmenu déroulant " ". Faites passer l'utilisateur au seul administrateur en cochant la Go System Administratorcase " ".

Comment installer et configurer GoCD sur Ubuntu 16.04

Pour ajouter les utilisateurs dans GoCD créés dans le fichier de mot de passe, cliquez sur le ADDbouton "" et recherchez l'utilisateur pour les ajouter. Les utilisateurs sont également automatiquement ajoutés au tableau de bord GoCD lors de leur première connexion. De toute évidence, pour que les utilisateurs se connectent, ils doivent être ajoutés au fichier de mots de passe que nous avons créé précédemment.

Sécuriser GoCD avec Let's Encrypt SSL

Par défaut, GoCD écoute les ports 8153 et 8154 les connexions sécurisées. Bien que le port 8154 fournisse une connexion sécurisée à l'application, il affiche également des erreurs de navigateur car il utilise un certificat auto-signé. Dans cette section du tutoriel, nous allons installer et sécuriser Nginx avec un certificat SSL gratuit Let's Encrypt. Le serveur Web Nginx fonctionnera comme un proxy inverse pour transmettre les demandes entrantes au point de HTTP terminaison du GoCD .

Installez Nginx.

sudo apt -y install nginx

Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start nginx
sudo systemctl enable nginx

Ajoutez le référentiel Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Installez Certbot, qui est l'application cliente de Let's Encrypt CA.

sudo apt -y install certbot

Remarque : Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.

Générez les certificats SSL.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/gocd.example.com/. Le certificat SSL sera stocké sous fullchain.pem et la clé privée sera stockée sous privkey.pem.

Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide de tâches cron.

Ouvrez le fichier de tâche cron.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier.

30 5 * * * /usr/bin/certbot renew --quiet

La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.

Créez un nouveau fichier de configuration pour l'interface Web du GoCD.

sudo nano /etc/nginx/sites-available/gocd

Remplissez le fichier.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

Activez le fichier de configuration.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

Redémarrez le serveur Web Nginx pour implémenter le changement de configuration.

sudo systemctl restart nginx

Vous pouvez maintenant accéder au tableau de bord GoCD à l'adresse https://gocd.example.com. Connectez-vous à votre tableau de bord à l'aide des informations d'identification de l'administrateur et accédez à " Admin >> Server Configuration" dans la barre de navigation supérieure.

Comment installer et configurer GoCD sur Ubuntu 16.04

Réglez " Site URL" et " Secure Site URL" sur https://gocd.example.com.

Installation de GoCD Agent

Dans l'environnement d'intégration continue du GoCD, les agents du GoCD sont les travailleurs qui sont responsables de l'exécution de toutes les tâches. Lorsqu'une modification de la source est détectée, le pipeline est déclenché et les travaux sont attribués aux travailleurs disponibles pour exécution. L'agent exécute ensuite la tâche et signale l'état final après l'exécution.

Pour exécuter un pipeline, au moins un agent doit être configuré. Procédez à l'installation de l'agent GoCD sur le serveur GoCD.

Comme nous avons déjà importé le référentiel GoCD sur le serveur, nous pouvons installer directement Go Agent.

sudo apt install -y go-agent

Maintenant, démarrez le serveur GoCD et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start go-agent
sudo systemctl enable go-agent

L'agent GoCD exécuté sur l'hôte local est automatiquement activé lorsqu'il est détecté.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.