Bouteiller

Suporte do Bouteiller

O Bouteiller é uma app gratuita para iPhone e iPad que permite acompanhar e controlar os seus servidores Jenkins: estado dos jobs, console log, lançamento e paragem de builds, aprovação dos inputs dos pipelines, widgets e Atalhos.

Requisitos

Criar um token de API

O Bouteiller inicia sessão com o seu nome de utilizador Jenkins e um token de API, nunca com a sua palavra-passe.

  1. Inicie sessão na interface web do Jenkins.
  2. Abra a página Security (Segurança) das suas definições de utilizador: aceda a https://o-seu-jenkins/me/security (o formulário do servidor na app tem um botão Abrir a página do token que o faz por si) ou clique no seu nome no canto superior direito e depois em Security. A secção API Token encontra-se aí.
  3. Na secção API Token, escolha Add new Token (Adicionar novo token), dê-lhe um nome (por exemplo, «Bouteiller iPhone») e gere-o.
  4. Copie o token de imediato: o Jenkins só o mostra uma vez.
  5. No Bouteiller, adicione um servidor e introduza o endereço do servidor, o seu nome de utilizador e o token. A app verifica a ligação e a versão do Jenkins antes de guardar.

Pode revogar o token a qualquer momento na mesma página do Jenkins; a app indicará então que as credenciais foram recusadas.

VPN e autoridades de certificação internas

Servidores acessíveis só por VPN

O Bouteiller não controla a sua VPN. Ao adicionar ou editar um servidor, ative Acessível só por VPN: quando o servidor não responder, a app sugere então que se ligue à VPN em vez de mostrar um erro genérico.

Certificados de uma autoridade interna

Se o seu servidor Jenkins usar um certificado emitido pela autoridade de certificação da sua organização, o iOS não confia nele por predefinição. Há duas opções:

Aprove apenas um certificado cuja impressão digital tenha confirmado com o seu departamento de informática. Caso contrário, qualquer pessoa capaz de intercetar a ligação poderia ler o seu token de API.

HTTP não encriptado

Espera-se HTTPS. O HTTP não encriptado só é aceite para um servidor da rede local, depois de o permitir explicitamente no formulário do servidor: o token de API é então enviado sem encriptação.

Notificações

Nesta versão, as notificações funcionam em modo local: a app verifica os seus jobs favoritos em segundo plano e apresenta uma notificação no dispositivo quando algo acontece. Nenhum servidor do programador está envolvido.

Configuração

  1. Adicione o job aos seus favoritos.
  2. Toque no sino do job favorito e escolha os eventos: build iniciado, sucesso, falha, instável, recuperado, cancelado, input pendente. A escolha predefinida («Notificar problemas») abrange falha, instável, recuperado e input pendente.
  3. Permita as notificações quando o iOS o pedir. O estado do job nesse momento serve de referência: só são notificados os eventos posteriores.

Limites do modo local

A secção Notificações das definições da app indica se as notificações e a atualização em segundo plano estão permitidas e permite executar uma verificação de imediato.

Estão previstas para uma versão futura notificações push que funcionam também fora da VPN, através de um plugin Jenkins opcional.

Perguntas frequentes

O Bouteiller é uma app oficial do Jenkins?
Não. O Bouteiller é uma app independente, desenvolvida por um particular. Não é afiliada ao projeto Jenkins nem aprovada por ele.
Tenho de instalar um plugin no meu servidor?
Não. A app funciona com um servidor Jenkins sem qualquer plugin. Os jobs freestyle podem ser consultados, lançados, parados e relançados; os stages dos pipelines, os inputs e os resultados de testes são apresentados quando os plugins correspondentes estão instalados.
A app diz que a minha versão do Jenkins não é suportada.
O Bouteiller requer o Jenkins 2.580.1 LTS ou uma versão weekly 2.580 ou posterior. Fale com o seu administrador sobre uma atualização.
A app diz que as credenciais foram recusadas.
Verifique o nome de utilizador (o seu ID de utilizador Jenkins, não necessariamente o seu nome de apresentação) e o token de API. Se o servidor estiver atrás de um reverse proxy ou de um portal de autenticação única, confirme que o cabeçalho Authorization chega ao Jenkins.
O servidor está inacessível, mas funciona no Safari.
Verifique se introduziu o mesmo endereço que no Safari, incluindo o caminho (por exemplo, https://ci.exemplo.pt/jenkins). Se o Safari só funcionar com a VPN, ative a opção VPN do servidor. Se o certificado não for fidedigno, consulte autoridades de certificação internas.
Posso proteger as ações sensíveis?
Sim. Nas definições, pode exigir o Face ID, o Touch ID ou o código do dispositivo antes de parar um build e antes de aprovar ou rejeitar um input. A autenticação é tratada pelo iOS; a app nunca vê os dados biométricos.
Posso usar vários servidores?
Sim, tantos quantos quiser. O separador Favoritos mostra os jobs favoritos de todos os servidores.
Que widgets e atalhos estão disponíveis?
Widgets: estado de um job (ecrã principal e ecrã bloqueado), favoritos, builds com falha de um servidor, com um botão para lançar os jobs sem parâmetros. Atalhos e Siri: lançar um job, estado de um job, builds com falha, abrir um job. Um controlo na Central de controlo lança um job favorito. Os widgets mostram a hora da última atualização e indicam quando o servidor está inacessível.
Porque é que os widgets mostram dados antigos?
Os widgets são atualizados quando o iOS o permite e apenas enquanto o servidor estiver acessível. Caso contrário, mantêm o último estado conhecido, com a hora da última atualização e um indicador «inacessível».
Como apago os meus dados?
Apague o servidor na app: o respetivo token de API é removido do porta-chaves, juntamente com os favoritos, as subscrições de notificações e os dados em cache. A cache, por si só, pode ser limpa nas definições. Apagar a app remove os seus dados; como o iOS pode manter elementos do porta-chaves depois de uma app ser apagada, apague primeiro os seus servidores se quiser ter a certeza de que os tokens são eliminados, e revogue os tokens no Jenkins.
A app recolhe dados?
Não. Consulte a política de privacidade.

Contacto

Para uma questão, um problema ou uma sugestão, escreva para: nicolas.mannocci@gmail.com.

Para ajudar a resolver um problema, indique a versão da app (apresentada nas definições da app), o seu dispositivo e a versão do iOS, a sua versão do Jenkins e, se for o caso, se está envolvida uma VPN ou uma autoridade de certificação interna. Nunca envie o seu token de API.