[TOC] # Ajout du certificat MERIO au magasin des certificats Ubuntu [Source : *Installing a root CA certificate in the trust store*](https://ubuntu.com/server/docs/security-trust-store) Le root certificate est ajouté au magasin des certificats Ubuntu via le paquet `ca-certificates`. :::warning Pour que l'ajout du certificat soit pris en compte, son extension doit être changée (elle doit être `.crt`) : ```BASH= mv merioCA.pem merioCA.crt ``` ::: ```BASH= sudo apt-get install -y ca-certificates // Installation du paquet ca-certificates sudo cp merioCA.crt /usr/local/share/ca-certificates // Copie du certificat dans le dossier du magasin des certificats sudo update-ca-certificates // Actualisation du magasin des certificats ``` :::info Les commandes systèmes Ubuntu se connectant aux adresses des certificats (`curl`, `wget`, ...) ne revoient plus d'erreur de verification des certificats : ```curl https://192.168.10.102``` renvoie ![image](https://hackmd.io/_uploads/B1ctM_si6.png) ::: # Installation du `Docker Engine ` ## Installation via les `apt repository` [Source : Documentation officielle](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) ```BASH= # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update ``` On peut controller la bonne execution du service Docker par la commande : ``` sudo service docker status ``` ![image](https://hackmd.io/_uploads/Hyi8muoo6.png) # Installation de `gitlab-runner` ## Via le paquet `deb` [Source : Using deb/rpm package](https://docs.gitlab.com/runner/install/linux-manually.html#using-debrpm-package) On reccupère la paquet via la commande : ```BASH= curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner_amd64.deb" ``` :::info Le paquet est disponible pour plusieurs types d'architecture processeur : `gitlab-runner_amd64.deb`, `gitlab-runner_arm.deb`, `gitlab-runner_arm64.deb`, ... cf : [Liste complète](https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/index.html) ::: # Création et enregistrement d'un *`project runner`* ## Création du `project runner` Un `project runner` est un runner n'executant que les jobs de certains projets. Ils ne sont généralement dédié qu'à un seul projet. Le `project runner` doit premièrement être créé côté GitLab. Cela peut être fait depuis l'interface web : - Menu **Settings -> CI/CD** ![image](https://hackmd.io/_uploads/Syr9Ctssp.png) - Menu **Runners** -> **Collapse** -> **New project Runner** ![image](https://hackmd.io/_uploads/HygaRKjsT.png) - Cocher **Run untagged jobs** - Cocher **Lock to current projects** - Cliquer sur **Create Runner** ![image](https://hackmd.io/_uploads/r1Pf1qis6.png) On obtient la fenetre suivante indiquant la commande : ```BASH= gitlab-runner register --url <gitlab instance url> --token <project runner token> ``` ![image](https://hackmd.io/_uploads/Bk9Wecjja.png) ## Enregistrement du *`project runner`* Le runner créé doit maintenant être enregistrée par le demon `gitlab-runner` executé sur notre machine dédiée au test : on dit qu'on **enregistre le runner** Il suffit pour cela d'executer la commande donnée à l'écran precedent, affiché lors de la création du runner sur GitLab : ```BASH= sudo gitlab-runner register --url <gitlab instance url> --token <project runner token> ``` Plusieurs options sont à renseigner en ligne de commande : ![image](https://hackmd.io/_uploads/BJrXH9ooT.png) - **GitLab instance URL** : https://192.168.10.102 - **Name for the runner** : RunnerTest01 *N'est pas forcement identique à celui renseigné sur GitLab* - **Executor** : docker *Les jobs seront executés au sein d'un container docker* - **default Docker image** : ruby:2.7 *Image Docker prise comme base par les containers executant les tests* N'est pas utilisée ici La configuration du runner a été ajooutée au fichier `/etc/gitlab-runner/config.toml` : ![image](https://hackmd.io/_uploads/B1SR8cjop.png) # Lancement de `gitlab-runner` `gitlab-runner` peut être lancé via la commande : ``` sudo gitlab-runner run ``` Cette commande lit les runner devant êtres configurés dans le fichier `config.toml` Sans `sudo`, `gitlab-runner` est lancé en `user-mode` : ![image](https://hackmd.io/_uploads/BJxeD_jiT.png) La configuration n'est, dans ce cas pas localisée au même endroit : - **`user-mode`** : `/home/<user>/.gitlab-runner/config.toml` - **`system-mode `** : `/etc/gitlab-runner/config.toml` `gitlab-runner` lancé en `system-mode` : ![image](https://hackmd.io/_uploads/rypKwcijp.png) # Sources - [Tutorial: Create, register, and run your own project runner](https://docs.gitlab.com/ee/tutorials/create_register_first_runner/)