PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Littlewing : Retour d’expérience sur les pipelines JENKINS

lundi 7 août 2017 à 09:44

Depuis quelques mois, je travaille sur la migration des jobs JENKINS vers des pipelines JENKINS . Les pipelines sont une nouveauté fournie par JENKINS 2. Ça permet de décrire le cycle de vie d’un build par un DSL GROOVY

Exemple :

#!/usr/bin/groovy
@Library('malibrairie')_

node {
echo 'Demarrage du Build'

final MAVEN = "MAVEN-3.2"
final JDK = "JDK8"

try {
/* Extraction GIT/SVN + Initialisation des proprietes */
stage('Clean & Init') {
scm checkout
}
stage('Build'){
withEnv(["PATH+MAVEN=${tool MAVEN}/bin", "PATH+JAVA=${tool JDK}/bin"]) {

sh "mvn -X clean deploy -Pjdk6 -Pdev -DenvClassifier=dev -Dmaven.test.skip=true

}
}
stage('Quality') {
// lancement sonar

}

} catch (exception) {
currentBuild.result = 'FAILURE'
throw exception
} finally {
//
}
}

 

Bon je ne vous ferai pas un cours sur les pipelines, il y a déjà plusieurs sites qui font ça mieux que moi . Je vais me concentrer sur mon retour d’expérience

Les sharedlib

Ca c’est la killing feature! On peut centraliser les comportements communs à tous les builds et fournir aux projets dans leurs fichiers Jenkinsfile toute une librairie de composants. Celle-ci permet de réellement factoriser le développement des fonctionnalités de l’usine logicielle. En plus, si on couple tout ça à un repo GIT, le cycle de vie est tout trouvé: On développe sur une branche, on peut également la tester dans JENKINS et une fois OK, on publie le tout dans la branche master. Une fois publié, l’ensemble des jobs reçoit la mise à jour. Quand vous avez plus de 50 jobs à administrer, ça représente un gain de temps considérable.

Personnellement j’ai choisi de tout centraliser le comportement dans la sharedlib. De ce fait, le pipeline configuré dans chaque projet à cette forme :

#!/usr/bin/groovy

mavenNode{
  mavenJee{
  deployment=false
  }
} 

 

Exemple d’invocation d’une librairie

#!/usr/bin/groovy
@Library('malibrairie')_

 

Exemple d’invocation d’une librairie sur une branche

#!/usr/bin/groovy
@Library('malibrairie@mabranche')_

Les plugins liés à GITHUB

Sur le papier, c’est génial. On a le plugin GITHUB Organization Plugin qui permet de mapper les repo GITHUB sur une instance JENKINS.

Cependant, en entreprise, c’est difficilement utilisable ( sauf si votre entreprise opte pour une appliance ), surtout si vous avez un proxy. En effet, le plugin GITHUB API ne supporte pas les proxy. Bref, je n’ai pas pu pleinement exploiter toutes les fonctionnalités d’un couplage GITHUB/JENKIINS.

La documentation

Même si l’équipe a refait toute la doc, je ne la trouve pas top. J’ai eu du mal à m’y faire au début. J’ai eu plus d’informations en naviguant sur quelques repo GITHUB que sur la documentation.Pour la référence de tous les steps, ça va, mais je ne la trouve pas didactique.

En résumé

Même si il y a quelques déconvenues, les pipelines sont une évolution majeure de JENKINS. Ca m’a permis de perdre du temps dans les écrans d’administration et de factoriser les différents build grâce à du code GROOVY.  Si vous avez encore des JOBS JENKINS « legacy », n’hésitez plus !

Pour aller plus loin

Si vous voulez plus d’exemples et de détails je vous conseille ces liens :

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

nIQnutn : nano pour les nuls

lundi 7 août 2017 à 09:19

nano est un éditeur de texte, en console ou en terminal, très utile pour modifier les fichiers de configuration de son système. Installé par défaut sur Debian, nano est relativement simple à utiliser. La prise en main et les débuts avec un éditeur de texte comme nano s'avère déroutante pour les débutants, par contre cet outil est très utile voire indispensable dans certaines situations.
Son utilisation implique d'utiliser uniquement le clavier. Il sera donc nécessaire de connaître les principaux raccourcis clavier correspondants aux fonctions importantes. L'objectif de cet article est d'apporter les connaissances essentielles sur nano expliquées pas à pas afin qu'un utilisateur, même débutant, puisse utiliser cet éditeur de texte sans crainte.

Je vous rassure, c'est à la portée de tout le monde. Si vous en avez besoin, vous pouvez imprimer le récapitulatif des différentes commandes et le garder à côté de vous. L'utilisation de nano n'est pas indispensable mais c'est une solution à privilégier dans les cas d'entraide sur les forums, IRC, ... Dans les autres cas, libre à vous d'utiliser les outils qui vous conviennent le mieux.

Je ne prendrai pas le temps de vous détailler pourquoi utiliser nano (ou tout autre éditeur de texte depuis le terminal) plutôt qu'un éditeur avec une interface graphique. Pour faire rapide, c'est principalement pour des raisons de sécurité et qu'en cas de problème, votre interface graphique pourrait ne pas être disponible (expérience vécue avec un fstab mal configuré).

Pour ceux qui ne sont pas encore à l'aise avec l'utilisation du clavier ou qui veulent en savoir un peu plus, je vous invite à consulter la présentation / atelier de Jérôme Choain aka jcfrog avant d'attaquer la suite.
Souris et clavier: Les bases

Pour faciliter la compréhension, j'ai ajouté des vidéos courtes pour illustrer l'utilisation de nano. Vous verrez en même temps tout ce qui est saisi au clavier et les raccourcis utilisés.
Par souci de simplification, l'article ne précisera qu'un seul raccourci-clavier par fonction. Il peut exister plusieurs raccourcis pour une seule fonction. Pour en savoir plus, consulter l'aide ou le récapitulatif.

nano 2.7.4-1
gnome-terminal 3.22.2-1
Debian GNU/Linux 9.0 (stretch)
Sommaire
  1. Ouvrir un fichier
  2. Quitter nano
  3. Sauvegarder un fichier
  4. Afficher l'aide
  5. Éditer un fichier
    1. Naviguer
    2. Rechercher
    3. Annuler la dernière opération
    4. Copier / Coller
    5. Remplacer
  6. Lecture seule
  7. Faire une copie de sauvegarde du fichier
  8. Ouvrir une copie vide
  9. Ouvrir un fichier avec les droits administrateurs
  10. Gnome-Terminal
  11. Récapitulatif
  12. Conclusion
  13. Ressources

Ouvrir un fichier

Pour commencer, on va simplement ouvrir un fichier texte.


$user
nano 

Si le fichier n'est pas spécifié ou qu'il n'existe pas encore au lancement de nano, il sera vide. Sinon, nano affichera le contenu du fichier.

Petite explication sur l'interface de nano:

Quitter nano

Si c'est la première fois que vous utilisez nano, vous allez certainement vous demander comment fermer l'éditeur de texte. En bas de l'écran, on trouve un bandeau avec les raccourcis clavier, notamment celui pour Quitter. Pour ceux qui n'ont pas appris le Geek comme langue étrangère, je vous fais la traduction:
^X Quitter : ça signifie appuyer sur les touches Ctrl+X pour Quitter

Si vous n'avez pas effectué de modifications sur le fichier, le fichier se fermera directement.

Il existe un autre raccourci pour quitter: F2

Si vous n'arriver pas à quitter avec F2, c'est que le terminal a affecté cette touche pour une autre fonction. Pour modifier le comportement des touches F1 à F12, il faut éditer les préférences du terminal (cf. Gnome-Terminal).

Si le fichier a été modifié

Si vous êtes un utilisateur compulsif et vous avez modifié le fichier, le message suivant apparaîtra:
Écrire l'espace modifié ? (Répondre « Non » ABANDONNE les modifications.)
Il faudra confirmer votre choix (quitter nano sans enregistrer les modifications) en tapant sur N puis Entrée.

Sauvegarder un fichier

Maintenant on va éditer notre premier fichier avec nano. Une fois les modifications effectuées sur le document vous pouvez l'enregistrer avec Ctrl+O.

En bas de la fenêtre, vous verrez apparaître: "Nom du fichier à écrire: "
Il suffit de taper sur la touche Entrée pour valider les modifications. Ensuite, vous pouvez quitter nano normalement.

Autre cas possible, vous décidez de quitter l'application alors que vous avez effectué des modifications. Vous verrez apparaître le message: "Écrire l'espace modifié ? (Répondre « Non » ABANDONNE les modifications.)"
Taper sur la touche O pour enregistrer puis Entrée .

Afficher l'aide

On a vu les quelques commandes essentielles pour survivre avec nano: ouvrir, fermer et enregistrer les modifications. Vous pourriez arrêtez la lecture ici, mais cette partie vous sera utile, surtout pour éviter de chercher un peu partout de l'aide ou une explication.
Pour activer l'aide de nano, il faut utiliser le raccourci clavier Ctrl+G. Cela vous permettra d'afficher les raccourcis clavier disponible et découvrir toutes les fonctions disponibles. On y retrouve par exemple l'explication sur la notation des raccourcis clavier.

Les raccourcis sont représentés de la façon suivante :
  • la touche « Contrôle » est représentée par l'accent circonflexe (^) et peut être entrée soit via la touche Contrôle (Ctrl), soit en pressant 2 fois la touche « Échap. ».
  • Les séquences d'échappement sont représentées par le symbole « Méta » (M) et peuvent être entrées via les touches « Échap. », « Alt. » ou « Méta » selon la configuration de votre clavier. Appuyer 2 fois sur la touche « Échap. » puis entrer un nombre à 3 chiffres entre 000 et 255 insère le caractère de code correspondant.

En complément de l'aide vous avez aussi les commandes man nano et nano --help .

Éditer un fichier

Il nous reste à découvrir les fonctions principales permettant d'éditer un fichier texte. Évidemment, cela inclut savoir comment naviguer dans un document (qui peut être très long), copier/coller du texte, utiliser les fonctions de recherche/remplacement et annuler les dernières opérations.

J'en profite pour vous donner la solution pour annuler une opération en cours: Ctrl+C

Naviguer

Pour se déplacer, on utilisera principalement les flèches du clavier:

Pour des fichiers un peu plus longs, il existe d'autres raccourcis clavier pour aller à l'écran suivant/précédent:

Certaines lignes peuvent être longues et on aimera certainement gagner du temps en se déplaçant directement au début ou la fin de la ligne:

Encore plus rapide, il est possible d'aller directement à emplacement défini. Pour aller à une ligne et colonne : saisir Ctrl+_ (caractère de soulignement ou underscore). Le message suivant apparaît en bas de l'écran: "Entrez : numéro de ligne, numéro de colonne : x,y"
Indiquer le numéro de la ligne x suivi d'une virgule et du numéro de la colonne y.
On peut afficher la position du curseur et les informations du fichier avec Ctrl+C.

Rechercher

En complément de la navigation, la fonction de recherche vous sera probablement utile. Pour rechercher une chaîne de caractère on utilise Ctrl+W. En bas, on voit apparaître le message: "Recherche: "
Il suffit de saisir le terme ou l'expression rationnelle puis lancer la rechercher en appuyant sur Entrée.
Pour chercher le prochain résultat, il faut utiliser Alt+W.

Annuler la dernière opération

Lorsque que l'on fait une erreur lors de la modification d'un fichier, il est utile de pouvoir annuler et revenir en arrière :

Copier / Coller

L'utilisation de copier/coller est certainement la fonctionnalité qui vous sera le plus utile. On va voir trois solutions possibles pour effectuer un copier/coller:

Couper / Coller une ligne

Une solution assez basique en coupant/collant des lignes du fichier en cours d'édition.

Coller depuis un fichier

Il est possible d'insérer un fichier dans l'espace en cours d'édition.
On copie le contenu du fichier avec la commande Ctrl+R puis on indique le chemin du fichier lorsque le message suivant s'affiche: "Fichier à insérer [à partir de ./] : "

Copier / Coller via le terminal

Les solutions pour copier/coller avec nano sont limitées ou peu pratiques. On va donc profiter des solutions offertes par le terminal pour retrouver un comportement "traditionnel" permettant de copier/coller du texte entre plusieurs applications. Par exemple, si vous avez trouvé une solution dans un forum ou sur un wiki vous aurez envie de copier la solution depuis votre navigateur et coller dans votre fichier ouvert avec nano.

Depuis le menu "Édition" du terminal, vous trouverez les fonctions Copier et Coller. On peut également utiliser les raccourcis-clavier pour Gnome-Terminal / xfce4-terminal :

Remplacer

Il est possible de remplacer une chaîne de caractère. On utilisera le raccourci clavier Alt+R pour lancer la fonction.

Pour finir, on obtient le message suivant: "Remplacer cette occurrence ? O Oui       T Tous       N Non       ^C Annuler"
Choisir entre Oui (remplacer une seule occurrence), Non (passer à la prochaine occurrence), Tous (remplacer toutes les occurrences) ou Annuler pour arrêter la fonction de remplacement.

Lecture seule

Il est possible d'utiliser nano uniquement pour consulter un fichier et éviter toute modification.


$user
nano -v 

Faire une copie de sauvegarde du fichier

Il arrive de devoir modifier un fichier important mais par sécurité on souhaite garder une copie du fichier original avant modification. Utile pour retrouver un système fonctionnel suite à des modifications hasardeuses.


$user
nano -B 

Le fichier de sauvegarde est enregistré dans le même répertoire, avec le même nom de fichier et suffixé avec le caractère ~ (c'est donc un fichier caché).

La fonction de sauvegarde ne permet de garder que la dernière version du fichier (vous n'aurez donc pas d'historique des modifications). Si besoin, ne pas hésiter à copier/enregistrer le fichier pour en garder plusieurs versions.

Ouvrir une copie vide

il arrive parfois de vouloir modifier un fichier mais que l'on souhaite repartir d'un fichier vierge. Dans ce cas, il est possible d'utiliser la fonction --noread.


$user
nano --noread 

Attention, le fichier ouvert sera vide mais écrasera bien le fichier existant. Cette fonction s'avère utile lorsque l'on va importer le contenu d'un autre fichier (on s'économise la suppression du fichier).

Ouvrir un fichier avec les droits administrateurs

Puisque ce n'est pas évident pour tout le monde, on va revoir comment éditer un fichier avec des droits limités.
Par exemple, c'est le cas fichier /etc/apt/sources.list pour activer des dépots ou /etc/fstab pour monter des partitions.
Ces fichiers sont indispensables au fonctionnement du système. C'est pour cette raison que seul l'utilisateur root peut les modifier et pas un utilisateur lambda.

Pour effectuer des modifications (la lecture est possible sur la plupart des fichiers de configurations), il faut obtenir les droits root. On va utiliser la commande su qui permet de changer d'utilisateur:


$user
niqnutn@debian:~$ su
Mot de passe : 
root@debian:/home/niqnutn# 

Sur la dernière ligne on voit bien root (c'est le nom de l'utilisateur en cours d'utilisation).

Dans le doute et pour vérifier avec quel utilisateur vous êtes connecté, une petite commande à connaître: whoami


#root
whoami
root

Maintenant vous pouvez éditer votre fichier mais soyez prudent.

Il n'y a aucun changement dans le comportement de nano, mais je vous conseille d'utiliser la commande suivante pour faire une sauvegarde du fichier:


#root
nano -B 

Vous pouvez copier le fichier d'une autre manière mais pensez-y, ça vous sera utile.

Quand vous avez fini, pensez à vous déconnecter de l'utilisateur root avec la commande exit.

Gnome-Terminal

Par défaut Gnome-Terminal affecte la touche F1 au sommaire du terminal. Personnellement, je n'en ai pas besoin et je préfère utiliser ce raccourci pour mes applications comme nano.

Pour désactiver la touche F1, il faut aller dans Préférences > Raccourcis et dans la section Aide. Vous verrez une entrée nommée "Sommaire" avec le raccourci F1 en face.
Il suffit de cliquer dessus et d'appuyer sur la touche Retour pour désactiver.

Récapitulatif

Télécharger le fichier nano.pdf
Télécharger le fichier source nano.odt

Conclusion

Après lecture de cet article, vous devriez être en mesure d'utiliser nano sans trop de difficultés. Volontairement, toutes les fonctionnalités n'ont pas été expliquées pour faire une synthèse accessible aux débutants. Libre à vous de lire la documentation et explorer les autres possibilités offertes par nano ou d'attendre un article complémentaire pour approfondir son utilisation.

Il existe un problème avec l'utilisation de nano avec les raccourcis et nos claviers AZERTY. Cela oblige parfois à utiliser une touche supplémentaire Maj ou AltGr ce qui rend l'utilisation de certaines fonctions un peu pénibles.

Ressources


2016 nIQnutn CC-BY

Gravatar de nIQnutn
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #31

lundi 7 août 2017 à 00:01

Pour la 31ème semaine de 2017, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Jean-Baptiste Holcroft : NextCloud 12 est disponible sur YunoHost

lundi 7 août 2017 à 00:00

Il y a trois mois maintenant, nous apprenions la sortie de la version 12 de Nextcloud. Celle-ci est désormais disponible sur YunoHost !

La fonctionnalité la plus pratique pour moi est l’amélioration du partage de fichier dont je fais un usage intensif, le reste concerne l’amélioration de l’intégration …

Gravatar de Jean-Baptiste Holcroft
Original post of Jean-Baptiste Holcroft.Votez pour ce billet sur Planet Libre.

Articles similaires

Max Koder : Migration de mon blog en mutualisé pour Yunohost

dimanche 6 août 2017 à 21:59
Du mutualisé pour Yunohost

Ça y est, c’est fait. Si vous pouvez lire ceci, c’est que personne n’a encore fait tomber mon serveur, et que la connexion internet tient bon. Oui, vous êtes chez moi, dans mon salon, à coté de ma télé : J’ai quitté le mutualisé pour Yunohost ; Ce blog est maintenant auto-hébergé

Vous êtes là, dans le Raspberry rose ^^

Bon forcément si vous êtes ici, c’est que vous voulez en savoir plus. Voyons comment j’ai migré mon blog en mutualisé pour Yunohost.

Quitter le mutualisé pour Yunohost

Si j’en parle ici, c’est que ça ne me paraît pas aussi banal que ça en a l’air.
Je ne suis pas sysadmin, je n’avais jamais géré de serveur auparavant, je découvre en même temps que je fais. Pour tout vous avouer, j’ai envoyé mes premiers fichiers avec sftp via le terminal il y a moins de 72 heures. Non, je ne m’étais jamais aventuré à quitter Filezilla pour le Shell.

Ça fait une petite dizaine d’années maintenant que j’ai mis mon premier site en ligne, et depuis tout ce temps, je n’ai jamais utilisé que du mutualisé. Je n’ai pas beaucoup de trafic, ni besoin de grosse architecture, ni de gros besoin d’ailleurs, alors le mutualisé me suffit.
En plus c’est simple, tout en interface graphique sur un navigateur, pas à se faire chier sur les DNS ou les ports etc. Alors devoir tout gérer par la console en accès distant, ça déroute.
Et si ça n’a pas été clair pour moi dès le début, j’ose imaginer que ce le sera également pour d’autres.

Ce que j’ai

Posons le problème. J’ai un hébergement sur un mutualisé avec un nom de domaine à moi. Dessus je n’ai qu’un blog sous WordPress et sa base de données.
Je souhaite basculer ça sur un Yunohost qui tourne déjà. Bien entendu, il faut que le site soit le moins indisponible possible.
Voyons comment faire cela.

Créer le domaine

Tout d’abord, il faut créer le nom de domaine sur Yunohost. Il ne sera pas fonctionnel tout de suite, nous verrons ça plus tard.
Pour ma part, je créé donc le domaine max-koder.fr, que je veux récupérer de mon hébergeur.

Webapp

Ensuite, au lieu d’installer l’application WordPress officielle de Yunohost, j’ai préféré installer une Custom Webapp, qui offre une DB si besoin et un accès FTP, bien plus pratique si on veut faire joujou avec ses fichiers.

 

Notez le mot de passe FTP, il sera utile.

Étant donné que je souhaite avoir mon blog sur le domaine max-koder.fr et non pas sur un sous domaine, j’ai mis simplement / dans le chemin.
Il ne sera donc plus possible d’installer d’autres applications sur le domaine :

Récupération des fichiers du mutualisé

J’en parle vite fait, bien que ce soit logique : Il faut avant tout récupérer les fichiers de votre site qui sont chez l’hébergeur, afin de les balancer sur Yunohost.
En plus ça fera office de sauvegarde si une coquille se passe

Pour ma part, j’ai choisi d’installer un plugin afin d’afficher une maintenance sur le site lors du transfert.
Ce n’est pas très utile, mais ça peut éviter que quelqu’un ne poste un commentaire sur l’ancien domaine pendant la propagation des DNS. Je ne l’ai pas activé de suite pour avoir une disponibilité du blog la plus longue possible, mais installé pour avoir ce plugin dans ma sauvegarde, que je basculerai sur Yunohost, afin d’avoir exactement les mêmes fichiers sur les 2 serveurs.

La sauvegarde de la base de données se fera le plus tard possible pour tuiler au maximum.

Modification du /etc/hosts

Pour pouvoir mettre les fichiers sur Yunohost, il va falloir se connecter au FTP de votre serveur, et plus précisément le FTP de la Custom Webapp.
Pour cela vous pouvez indiquer l’adresse IP du serveur si celle-ci est fixe, ou mettre le nom de domaine affecté.

Le problème, c’est que les DNS ne pointent toujours pas vers votre serveur Yunohost. Si c’est déjà le cas, vous avez été plus vite que la musique, et votre blog est certainement indisponible.
De plus, si vous mettez les fichiers par FTP avec pour hôte l’IP du serveur, le transfert fonctionnera, mais pas le blog : Tous vos liens internes pointent vers votre domaine et non l’IP.

Pour cela, il suffit de modifier le fichier hosts de votre machine (pas du serveur hein, votre ordinateur). Il existe sous Linux, Windows et Mac et permet de faire une correspondance entre un nom de domaine et une IP, avant d’aller chercher sur les serveurs DNS.
Nous allons donc pouvoir duper le navigateur et logiciel FTP, afin de diriger chaque requête à votre domaine sur l’adresse IP du serveur. Cette modification n’affectera bien sûr que votre ordinateur, les utilisateurs continueront d’avoir accès au mutualisé.

En fonction de votre OS, ouvrez votre fichier hosts avec les droits requis. Sous Linux, il se trouve à l’emplacement /etc/hosts.
Puis ajoutez une nouvelle ligne avec l’IP et votre nom de domaine :

78.195.242.45 max-koder.fr

Sauvegardez, et testons cela. En ouvrant le navigateur avec un onglet privé (pour éviter le cache), puis en tapant votre nom de domaine, vous devriez être redirigé vers une page blanche avec une photo de chaton, si si.
Sur cette même page, vous trouverez l’utilisateur associé au compte FTP, généralement webapp1.

Envoi des fichiers sur le FTP

Bon je ne vais pas vous expliquer comment on balance les fichiers du blog sur votre nouveau FTP. Mais sachez qu’avec Yunohost il faut travailler en SFTP, sur le port 22 par défaut. L’identifiant est celui que vous avez dû voir affiché sur la page web à l’étape juste au dessus, et le mot de passe est celui définit à l’installation de la Custom Webapp.

En revanche pour l’hôte, je vous conseille de travailler comme suit :
Pour ma part, j’ai créé 2 sites dans Filezilla. Le premier a pour hôte max-koder.fr, pour gérer mes fichiers lorsque je suis au boulot, en week-end etc. En revanche, j’ai créé un second site, dont l’hôte est l’IP locale du serveur, soit 192.168.0.34. Cela me permet de travailler directement sur le serveur en local, qui est bien plus rapide que de passer par internet quand je suis chez moi.

Une fois connecté au FTP, vous verrez un dossier www, c’est là dedans qu’il faudra envoyer les fichiers.
A la racine toujours se trouve un fichier db_access.txt. Les informations relatives à la base de données créée pour l’application se trouvent à l’intérieur, gardez les précieusement.

Balancez donc les fichiers du blog sur votre serveur, supprimez le fichier index.html (qui affiche le chaton et les infos FTP, dans le dossier www) et passons à la suite.

Modification de la config du blog

Sur WordPress, la configuration de la base de données se trouve dans le fichier wp-config.php, présent à la racine du blog. C’est dans ce fichier que les identifiants de la DB se trouvent.
Ouvrez donc ce fichier (celui du serveur Yunohost), et intéressons nous à ces lignes :

define('DB_NAME', 'maxkoder');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'maxkoder');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'MotDePasseDeLaMortQuiTue');

/** Adresse de l’hébergement MySQL. */
define('DB_HOST', 'localhost');

Ce code PHP définit des constantes qui sont utilisées dans tout le code de WordPress :

Puis sauvegardez.

Base de données

Est venu le temps de basculer les données.

Dump du mutualisé

En premier lieu, nous allons effectuer un backup de la base de données du mutualisé. Pour cela, le plus simple est de passer par PhpMyAdmin de votre ancien serveur (si besoin, modifiez votre fichier hosts pour pouvoir accéder à nouveau au mutualisé).
Sélectionnez la base de données de votre blog, et allez dans l’onglet Exporter :

Laissez les options par défaut, et faites Exécuter, puis enregistrez le fichier SQL.
Si la base est importante, vous pouvez cependant personnaliser l’exportation et sélectionner une compression en gzip par exemple afin de limiter le temps de téléchargement mais surtout d’upload.

Une fois l’export fait, vous pouvez aller sur votre blog fonctionnel (mutu), et activer la maintenance, pour éviter des commentaires par exemple qui ne seront pas transférés vers l’autre serveur.

Importer la base

Il va falloir maintenant importer la base de votre blog sous le serveur Yunohost.
Si ce n’est pas encore fait, installez l’application PhpMyAdmin, qui va nous permettre d’importer la DB.

Une fois dans PhpMyAdmin sur le Yunohost, sélectionnez votre base de données créée pour l’application (my_webapp), puis allez dans l’onglet Importer.
Sélectionnez la sauvegarde SQL que nous venons de récupérer, puis exécutez en laissant les paramètres par défaut.

NGINX, 404 not found

Vous avez maintenant accès à votre blog. Si la page d’accueil et l’administration fonctionnent, vous verrez qu’il y a de fortes chances que vous ne puissiez plus accéder à vos articles.
En effet, beaucoup d’hébergeurs mutualisés proposent un serveur Apache, sur lequel il est très simple de modifier la réécriture des URL, grâce à un fichier .htaccess présent normalement à la racine de votre blog.
Mais Yunohost a fait le choix de proposer un serveur NGINX pour les applications web, qui se fiche totalement du fichier .htaccess et donc, ne redirige pas bien les URL de WordPress.
Il va donc falloir modifier la configuration de NGINX pour l’adapter à notre besoin.

Connectez vous sur le serveur, et éditez le fichier conf de NGINX relatif à votre nom de domaine :

sudo nano /etc/nginx/conf.d/max-koder.fr.d/my_webapp.conf

Remplacez max-koder.fr par votre domaine bien sûr.
Pour plus de sécurité, faites-en une copie avant

Supprimez tout le contenu du fichier, et collez-y ceci :

location / {
    alias /var/www/my_webapp/www/;
    index index.php;
    if (!-e $request_filename)
    {
          rewrite ^(.+)$ /index.php?q=$1 last;
    }
    if ($scheme = http) {
          rewrite ^ https://$server_name$request_uri? permanent;
    }

    # Prevent useless logs
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Deny access to hidden files and directories
    location ~ ^/(.+/|)\\.(?!well-known\\/) {
        deny all;
    }

    # Execute and serve PHP files
    location ~ [^/]\\.php(/|$) {
        fastcgi_split_path_info ^(.+?\\.php)(/.*)$;
        fastcgi_pass unix:/var/run/php5-fpm-my_webapp.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param REMOTE_USER $remote_user;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $request_filename;
    }

    # Include SSOWAT user panel.
    include conf.d/yunohost_panel.conf.inc;
}

Enregistrez (Ctrl + O), Enter et quittez (Ctrl + X).
Puis arrêtez et relancez Nginx :

sudo yunohost service stop nginx
sudo yunohost service start nginx

DNS

Maintenant que le site est théoriquement prêt, il faut tester avant d’ouvrir les portes au public. Si vous ne l’aviez pas encore fait, c’est le moment de modifier votre hosts (voir plus haut) pour accéder à votre domaine sans modifier les DNS.
Si votre site fonctionne, on peut alors modifier les DNS.

Chez mon hébergeur, rien de plus facile. Il suffit de se rendre dans la gestion du domaine, et de modifier l’entrée par défaut, pour avoir ceci :

Pour le moment, seule la première ligne est importante.
En gros, on redirige chaque appel au domaine max-koder.fr à l’IP de mon serveur, avec un enregistrement de type A.
Vous pouvez à présent supprimer la modification du fichier hosts de votre machine.

Une fois les DNS propagés (quelques heures au max), vous aurez accès au serveur avec votre nom de domaine.

HTTP, HTTPS

À partir de maintenant, le blog sous Yunohost doit être fonctionnel. Mais lorsque vos visiteurs arriveront sur votre blog, ils auront une belle alerte de sécurité, car le certificat mis en place par défaut par Yunohost est auto-signé.
Nous allons remédier à cela grâce aux certificats Let’s Encrypt.

Let’s Encrypt et Yunohost

Lorsque vous utilisez un sous domaine fourni par Yunohost (sub.nohost.me ou sub.noho.st), il est relativement facile d’installer un certificat Let’s Encrypt, qui vous permet d’afficher fièrement un cadenas vert sur vos pages
Il suffit pour ça d’aller, depuis l’interface graphique, sur un domaine et cliquer sur le bouton Installer un certificat Let’s Encrypt.

En revanche, pour un vrai nom de domaine, j’avais ce résultat :

J’ai un certificat auto-signé, mais impossible d’installer un certificat Let’s Encrypt, même une fois les DNS propagés.

En cherchant un peu, j’ai trouvé sur le forum une parade. Une fois connecté en SSH sur le serveur, il suffit de lancer la commande suivante :

sudo yunohost domain cert-install max-koder.fr --no-checks

Remplacez bien sûr max-koder.fr par votre nom de domaine
L’option –no-checks va permettre de strapper les vérifications DNS qui faisaient défaut dans l’interface graphique.
Et c’est tout, votre domaine possède maintenant un certificat Let’s Encrypt valide pour 3 mois, censé se renouveler automatiquement.

Liens en HTTP

J’étais en HTTP avec mon mutualisé, et je passe maintenant en HTTPS. Forcément, mes liens internes ne fonctionnent plus.

Adresse du site

Sous WordPress, dans le menu Réglages -> Général, il va falloir indiquer que le site se trouve désormais à l’adresse , et non plus http. Cela évitera de se faire renvoyer vers la version HTTP du site :

Pensez bien à modifier les 2 champs.

En réalité, vous n’accéderez plus jamais à la version HTTP du site, car la conf Nginx redirige les appels à l’adresse vers .

Liens internes

Sur chaque page, je n’ai pas le petit cadenas vert, qui indique que toute la page est sécurisée. Non, j’ai le cadenas jaune, qui démontre que certaines ressources sont chargées en HTTP. Il s’agit surtout des images internes au site.

Pour rectifier cela, sans pour autant me taper tous les articles à la main, j’ai trouvé un petit plugin, Better Search Replace, qui va aller chercher dans la base de données et modifier ce que je veux.

Une fois lancé, il suffit d’indiquer l’ancien texte à remplacer, donc votre nom de domaine en http, le texte de remplacement, le NDD en https donc, de sélectionner les tables à modifier (toutes pour ma part), et de lancer la recherche :

La dernière option permet, si elle est cochée, de simuler le remplacement, afin de voir combien de fois et comment le texte demandé sera remplacé.

Et voilà, mon blog est fin prêt à vous accueillir !

L’article Migration de mon blog en mutualisé pour Yunohost est apparu en premier sur Max-Koder.

Gravatar de Max Koder
Original post of Max Koder.Votez pour ce billet sur Planet Libre.