En pleno 2022 seguro que queréis trastear con AzureDevops y trastear con pipelines de azure. Pues que sepáis que con una cuenta personal Azure da capa gratuita de AzureDevops, es decir espacio para 1 repo y 5 pipelines (no recuerdo ahora el limite pero lo tiene). Ya pero aunque de gratis AzureDevops lo que no da gratis son las maquinas virtuales donde se ejecutan o despliegan dichas pipelines, esto es cierto, pero si las maquinas las pones tu la cosa cambia y no te cobra nada de nada. El resultado es que puedas jugar todo lo que quieras AzureDevops sin tener que pasar por caja.

Al lio.

Partimos de una maquina centos 7 actualizada.

Lo primero voy ha crear una maquina virtual con centos y vamos a crear un usuario que no sea root.

sudo adduser akaronte
passwd akaronte

Añadir el usuario al grupode rooter que le permite ser root

yum install -y wget
usermod -aG wheel akaronte

Instalar dependencias

yum install -y yum-utils sudo wget
yum-config-manager --save --setopt=EfficiOS-RHEL7-x86-64.skip_if_unavailable=true
yum-config-manager --disable EfficiOS-RHEL7-x86-64
yum install -y epel-release
yum install -y lttng-ust
yum install  gssntlmssp -y

Ahora con el usuario que hemos creado nos dejargamos el agente AzureDevios y lo instalamos

sudo su - akaronte
wget https://vstsagentpackage.azureedge.net/agent/2.193.1/vsts-agent-linux-x64-2.193.1.tar.gz
tar xzvf vsts-agent-linux-x64-2.193.1.tar.gz
sudo ./bin/installdependencies.sh

Esto es todo en cuanto a instalar dependencias. En la pagina de nuestro azure devops debemos de crear un token de acceso con permisos, es asi como la maquina accedera a los recursos de nuestra organizacion.

Despues tenemos que crear una PoolAgents que es un grupo de agentes yo lo voy a llamar LocalCentos y cuando me pregunto el nombre del host centos. Cuando hagamos pipelines usaremos el nombre del pool no el nombre especifico de la maquina.

Una vez echo procemos a añadir a nuestro pool

sudo su - akaronte
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 
sudo su - akaronte
sh ./config.sh

Ahora seguimos las instrucciones para añadir nuestra maquina al POOL
Nos pediría la url de nuestra organización
Enter server URL https://dev.azure.com/akzureops
Personal Access Token
Lo añadimos al crontab para que se ejecute al arrancar el pc

crontab -e
@reboot sh /home/akaronte/run.sh

Configuramos el reboot y reiniciamos la maquina.

Con esto cuando el agente arranque automaticamente se unira al pool de agentes disponibles esperando para ser invocado para pipelines.

Me temo que el git de centos no le valia al agente linux de Azure devos porque lo que quitar el git que viene por defecto en centos e instalar una version mas avanzada

Quitar GIT

git --version
rpm -qi git
sudo yum -y remove git
package git is not installed
rpm -qi git

Instalar GIT

sudo yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
sudo yum install git

Ahora ya podemos ejecutar pipelines en nuestro agente local

stages:
- stage: Test
  jobs:
  - job: Test
    pool: LocalCentos
    continueOnError: true
    steps:
    - script: echo "hello piensoluegoinstalo.com"
PD: Añadir Powershell
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
yum install -y powershell

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *