Bouteiller

Assistance Bouteiller

Bouteiller est une app gratuite pour iPhone et iPad qui permet de suivre et de piloter vos serveurs Jenkins : état des jobs, console log, lancement et arrêt des builds, approbation des étapes input des pipelines, widgets et Raccourcis.

Prérequis

Créer un API token

Bouteiller se connecte avec votre nom d’utilisateur Jenkins et un API token, jamais avec votre mot de passe.

  1. Connectez-vous à l’interface web de Jenkins.
  2. Ouvrez la page Security (Sécurité) de vos réglages d’utilisateur : rendez-vous à l’adresse https://votre-jenkins/me/security (le formulaire de serveur de l’app propose un bouton qui l’ouvre pour vous), ou cliquez sur votre nom en haut à droite puis sur Security. La section API Token s’y trouve.
  3. Dans la section API Token, choisissez Add new Token (Ajouter un jeton), donnez-lui un nom (par exemple « Bouteiller iPhone ») et générez-le.
  4. Copiez le token aussitôt : Jenkins ne l’affiche qu’une seule fois.
  5. Dans Bouteiller, ajoutez un serveur et saisissez son adresse, votre nom d’utilisateur et le token. L’app vérifie la connexion et la version de Jenkins avant d’enregistrer.

Vous pouvez révoquer le token à tout moment depuis la même page de Jenkins ; l’app indiquera alors que les identifiants sont refusés.

VPN et autorités de certification internes

Serveurs accessibles uniquement par VPN

Bouteiller ne pilote pas votre VPN. À l’ajout ou à la modification d’un serveur, activez l’option indiquant qu’il n’est accessible que par VPN : quand le serveur ne répond pas, l’app vous propose alors de vous connecter au VPN plutôt que d’afficher une erreur générique.

Certificats d’une autorité interne

Si votre serveur Jenkins utilise un certificat émis par l’autorité de certification de votre organisation, iOS ne lui fait pas confiance par défaut. Deux possibilités :

N’approuvez qu’un certificat dont vous avez vérifié l’empreinte auprès de votre service informatique. Sinon, quiconque serait en mesure d’intercepter la connexion pourrait lire votre API token.

HTTP en clair

HTTPS est attendu. Le HTTP en clair n’est accepté que pour un serveur du réseau local, après l’avoir explicitement autorisé dans le formulaire du serveur : l’API token circule alors sans chiffrement.

Notifications

Dans cette version, les notifications fonctionnent en mode local : l’app vérifie vos jobs favoris en arrière-plan et affiche une notification sur l’appareil quand un événement survient. Aucun serveur du développeur n’intervient.

Mise en place

  1. Ajoutez le job à vos favoris.
  2. Touchez la cloche du job favori et choisissez les événements : build démarré, succès, échec, instable, retour au succès, annulé, input en attente. Le choix par défaut (« problèmes ») couvre l’échec, l’instabilité, le retour au succès et l’input en attente.
  3. Autorisez les notifications quand iOS vous le demande. L’état du job à ce moment sert de référence : seuls les événements suivants sont notifiés.

Limites du mode local

La section Notifications des réglages de l’app indique si les notifications et l’actualisation en arrière-plan sont autorisées, et permet de lancer une vérification immédiate.

Des notifications push, fonctionnant aussi hors VPN, sont prévues dans une version ultérieure, grâce à un plugin Jenkins facultatif.

Questions fréquentes

Bouteiller est-elle une app officielle de Jenkins ?
Non. Bouteiller est une app indépendante, développée par un particulier. Elle n’est ni affiliée au projet Jenkins, ni approuvée par lui.
Dois-je installer un plugin sur mon serveur ?
Non. L’app fonctionne avec un serveur Jenkins sans aucun plugin. Les jobs freestyle peuvent être consultés, lancés, arrêtés et relancés ; les étapes des pipelines, les inputs et les résultats de tests s’affichent quand les plugins correspondants sont installés.
L’app indique que ma version de Jenkins n’est pas prise en charge.
Bouteiller nécessite Jenkins 2.580.1 LTS ou une version weekly 2.580 ou ultérieure. Voyez avec votre administrateur pour une mise à jour.
L’app indique que les identifiants sont refusés.
Vérifiez le nom d’utilisateur (votre identifiant Jenkins, pas forcément votre nom affiché) et l’API token. Si le serveur est derrière un reverse proxy ou un portail d’authentification unique, assurez-vous que l’en-tête Authorization parvient jusqu’à Jenkins.
Le serveur est injoignable alors qu’il fonctionne dans Safari.
Vérifiez que l’adresse saisie est la même que dans Safari, chemin compris (par exemple https://ci.exemple.fr/jenkins). Si Safari ne fonctionne qu’avec le VPN, activez l’option VPN du serveur. Si le certificat n’est pas reconnu, voyez la section autorités de certification internes.
Puis-je protéger les actions sensibles ?
Oui. Dans les réglages, vous pouvez exiger Face ID, Touch ID ou le code de l’appareil avant d’arrêter un build et avant d’approuver ou de refuser un input. L’authentification est assurée par iOS ; l’app n’a jamais accès aux données biométriques.
Puis-je utiliser plusieurs serveurs ?
Oui, autant que vous le souhaitez. L’onglet Favoris regroupe les jobs favoris de tous les serveurs.
Quels widgets et raccourcis sont disponibles ?
Widgets : statut d’un job (écran d’accueil et écran verrouillé), favoris, builds en échec d’un serveur, avec un bouton pour lancer les jobs sans paramètres. Raccourcis et Siri : lancer un job, statut d’un job, builds en échec, ouvrir un job. Une commande du Centre de contrôle lance un job favori. Les widgets indiquent l’heure de leur dernière mise à jour et signalent un serveur injoignable.
Pourquoi les widgets affichent-ils des données anciennes ?
Les widgets sont actualisés quand iOS le permet, et seulement si le serveur est joignable. Sinon, ils conservent le dernier état connu, avec l’heure de la dernière mise à jour et un indicateur « injoignable ».
Comment supprimer mes données ?
Supprimez le serveur dans l’app : son API token est effacé du trousseau, ainsi que ses favoris, ses abonnements aux notifications et ses données en cache. Le cache seul peut être vidé depuis les réglages. Supprimer l’app efface ses données ; iOS pouvant conserver les éléments du trousseau après la suppression d’une app, supprimez d’abord vos serveurs si vous voulez être certain que les tokens sont effacés, et révoquez les tokens dans Jenkins.
L’app collecte-t-elle des données ?
Non. Consultez la politique de confidentialité.

Contact

Pour une question, un problème ou une suggestion, écrivez à : nicolas.mannocci@gmail.com.

Pour faciliter le diagnostic, précisez la version de l’app (affichée dans ses réglages), votre appareil et sa version d’iOS, votre version de Jenkins et, le cas échéant, la présence d’un VPN ou d’une autorité de certification interne. N’envoyez jamais votre API token.