I po letech mě Azure DevOps dokáže překvapit třikrát za den
Asi to taky znáte – věc, kterou jste už dělali snad stokrát, najednou prostě nejde. Nedávno jsme nastavovali Azure DevOps v jedné velké firmě. Tipoval bych, že budeme se vším max. za pár hodin hotoví.
Instalace agenta
Brnkačka, připravíme si PAT token, pustíme config a odpovíme na pár otázek, jako vždycky. Ale ups, server není vidět:
A connection attempt failed because the connected party did not properly respond after a period of time, or estabilished connection failed because connected host has failed to respond.
Z prohlížeče vše vypadá OK, proxy v nastavení systému mám zadanou, tak co je za problém? No, člověk, se pořád učí. Věděli jste, že config můžete spustit i s konkrétními proxy parametry?
–proxyurl, –proxyusername a –proxypassword parametry
I tak ho pořád můžete použít interaktivně (tentokrát jsme začínali s dvěma agenty, to nemá smysl automatizovat). Pak už nastavení proběhlo úspěšně (po „odpojení“ pomocí ./config remove).
Stažení zdrojového kódu
Tak super, máme agenta, jdeme buildit. Jenže agent nemůže stáhnout zdrojové kódy:
SSL certificate problem: self signed certificate in certificate chain
Barevné je to hezky, ale co s tím… Ještě že máme Pavla Řeháka, který nás navedl na řešení.
Ještě před tím, abychom si mohli naclonovat repository, museli jsme si pohrát s certifikáty podle tohoto článku:
https://mattferderer.com/fix-git-self-signed-certificate-in-certificate-chain-on-windows
No a to samé bylo potřeba pořešit pro účet, pod kterým nám běží agent. Ve zkratce, bylo potřeba vyexportovat root certifikát a v Gitu daného účtu (pod kterým běží agent) bylo potřeba nastavit proxy a cestu k vyexportovanému certifikátu. Jeho .gitconfig pak vypadal nějak takto:
A už jde buildit, paráda.
Stažení aftefaktu
Tak super, artefakt máme, jdeme ho deploynout ne? Ale kdepak, dneska nic nejde normálně. Takže do třetice:
Error: in getBuildApi, so retrying => retries pending: 4
A tady pomohl Stack Overflow: https://stackoverflow.com/questions/56855546/azure-devops-server-pipeline-build-fails-when-using-self-signed-ssl-certificate. Jen jsem musel příponu certifikátu změnit z .cer na .pem:
Pak už jen stačí restartnout službu agenta.
Tak…a teď zas konečně můžu jít něco dělat.