Auto-update blog content from Obsidian: 2026-04-29 20:40:29
Some checks failed
Blog Deployment / Notify (push) Successful in 3s
Blog Deployment / Check-Rebuild (push) Successful in 6s
Blog Deployment / Build (push) Has been skipped
Blog Deployment / Deploy-Staging (push) Successful in 9s
Blog Deployment / Test-Staging (push) Failing after 3s
Blog Deployment / Merge (push) Has been skipped
Blog Deployment / Test-Production (push) Has been skipped
Blog Deployment / Clean (push) Has been skipped
Blog Deployment / Deploy-Production (push) Has been skipped
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 225 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 169 KiB |
|
After Width: | Height: | Size: 316 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 21 KiB |
@@ -109,23 +109,23 @@ Avec Semaphore en fonctionnement, faisons rapidement le tour de l'UI et connecto
|
||||
## Discovery
|
||||
|
||||
Après avoir démarré la stack, je peux atteindre la page de connexion à l'URL :
|
||||

|
||||

|
||||
|
||||
Pour me connecter, j'utilise les identifiants définis par `SEMAPHORE_ADMIN_NAME`/`SEMAPHORE_ADMIN_PASSWORD`.
|
||||
|
||||
Au premier accès, Semaphore me demande de créer un projet. J'ai créé le projet Homelab :
|
||||

|
||||

|
||||
|
||||
La première chose que je veux faire est d'ajouter mon dépôt _homelab_ (vous pouvez trouver son miroir sur Github [ici](https://github.com/Vezpi/homelab)). Dans `Repository`, je clique sur le bouton `New Repository`, et j'ajoute l'URL du repo. Je ne spécifie pas d'identifiants car le dépôt est public :
|
||||

|
||||

|
||||
|
||||
ℹ️ Avant de continuer, je déploie 3 VM à des fins de test : `sem01`, `sem02` et `sem03`. Je les ai créées avec Terraform via [ce projet](https://github.com/Vezpi/Homelab/tree/main/terraform/projects/semaphore-vms).
|
||||
|
||||
Pour interagir avec ces VM, je dois configurer des identifiants. Dans le `Key Store`, j'ajoute la première donnée d'identification, une clé SSH pour mon utilisateur :
|
||||

|
||||

|
||||
|
||||
Ensuite je crée un nouvel `Inventory`. J'utilise le format d'inventaire Ansible (le seul disponible). Je sélectionne la clé SSH créée précédemment et choisis le type `Static`. Dans les champs je renseigne les 3 hôtes créés avec leur FQDN :
|
||||

|
||||

|
||||
|
||||
✅ Avec un projet, un repo, des identifiants et un inventaire en place, je peux avancer et tester l'exécution d'un playbook Ansible.
|
||||
|
||||
@@ -172,20 +172,20 @@ Je veux tester quelque chose de simple : installer un serveur web avec une page
|
||||
```
|
||||
|
||||
Dans Semaphore UI, je peux maintenant créer mon premier `Task Template` pour un playbook Ansible. Je lui donne un nom, le chemin du playbook (depuis le dossier racine du repo), le dépôt et sa branche :
|
||||

|
||||

|
||||
|
||||
Il est temps de lancer le playbook ! Dans la liste des task templates, je clique sur le bouton ▶️ :
|
||||

|
||||

|
||||
|
||||
Le playbook se lance et je peux suivre la sortie en temps réel :
|
||||

|
||||

|
||||
|
||||
Je peux aussi consulter les exécutions précédentes :
|
||||

|
||||

|
||||
|
||||
|
||||
✅ Enfin, je peux confirmer que le travail est fini en vérifiant l'URL sur le port 80 (http) :
|
||||

|
||||

|
||||
|
||||
Gérer des playbooks Ansible dans Semaphore UI est assez simple et vraiment pratique. L'interface est très soignée.
|
||||
|
||||
@@ -233,19 +233,19 @@ Avec cela en place, le playbook a réussi et j'ai pu créer l'utilisateur :
|
||||
```
|
||||
|
||||
Ensuite je crée un variable group `pve_vm`. Un variable group me permet de définir plusieurs variables et secrets ensemble :
|
||||

|
||||

|
||||
|
||||
Puis je crée un nouveau task template, cette fois de type Terraform Code. Je lui donne un nom, le chemin du projet Terraform, un workspace, le dépôt avec sa branche et le variable group :
|
||||

|
||||

|
||||
|
||||
Lancer le template me donne quelques options supplémentaires liées à Terraform :
|
||||

|
||||

|
||||
|
||||
Après le plan Terraform, il me propose d'appliquer, d'annuler ou d'arrêter :
|
||||

|
||||

|
||||
|
||||
Enfin, après avoir cliqué sur ✅ pour appliquer, j'ai pu regarder Terraform construire les VM, comme avec le CLI. À la fin, les VM ont été déployées avec succès sur Proxmox :
|
||||

|
||||

|
||||
|
||||
---
|
||||
## Conclusion
|
||||
|
||||
@@ -109,23 +109,23 @@ With Semaphore running, let’s take a quick tour of the UI and wire it up to a
|
||||
## Discovery
|
||||
|
||||
After starting the stack, I can reach the login page at the URL:
|
||||

|
||||

|
||||
|
||||
To log in, I use the credentials defined by `SEMAPHORE_ADMIN_NAME`/`SEMAPHORE_ADMIN_PASSWORD`.
|
||||
|
||||
On first login, Semaphore prompt me to create a project. I created the Homelab project:
|
||||

|
||||

|
||||
|
||||
The first thing I want to do is to add my *homelab* repository (you can find its mirror on Github [here](https://github.com/Vezpi/homelab)). In `Repository`, I click the `New Repository` button, and add the repo URL. I don't specify credentials because the repo is public:
|
||||

|
||||

|
||||
|
||||
ℹ️ Before continue, I deploy 3 VMs for testing purpose: `sem01`, `sem02` and `sem03`. I created them using Terraform with [this project](https://github.com/Vezpi/Homelab/tree/main/terraform/projects/semaphore-vms).
|
||||
|
||||
To interact with these VMs I need to configure credentials. In the the `Key Store`, I add the first credential, a SSH key for my user:
|
||||

|
||||

|
||||
|
||||
Then I create a new `Inventory`. I'm using the Ansible inventory format (the only one available). I select the SSH key previously created and select the type as `Static`. In the fields I enter the 3 hosts created with their FQDN:
|
||||

|
||||

|
||||
|
||||
✅ With a project, repo, credentials, and inventory in place, I can move forward and test to run an Ansible playbook.
|
||||
|
||||
@@ -172,20 +172,20 @@ I want to test something simple, install a web server with a custom page on thes
|
||||
```
|
||||
|
||||
In Semaphore UI, I can now create my first `Task Template` for Ansible playbook. I give it a name, the playbook path (from the root folder of the repo), the repository and its branch:
|
||||

|
||||

|
||||
|
||||
Time to launch the playbook! In the task templates list, I click on the ▶️ button:
|
||||

|
||||

|
||||
|
||||
The playbook launches and I can follow the output in real time:
|
||||

|
||||

|
||||
|
||||
I can also review previous runs:
|
||||

|
||||

|
||||
|
||||
|
||||
✅ Finally I can confirm the job is done by checking the URL on port 80 (http):
|
||||

|
||||

|
||||
|
||||
Managing Ansible playbooks in Semaphore UI is pretty simple and really convenient. The interface is really sleek.
|
||||
|
||||
@@ -233,19 +233,19 @@ With that in place, the playbook succeeded and I could create the user:
|
||||
```
|
||||
|
||||
Next I create a variable group `pve_vm`. A variable group let me define multiple variables and secrets together:
|
||||

|
||||

|
||||
|
||||
Then I create a new task template, this time with the kind Terraform Code. I give it a name, the path of the terraform [project](https://github.com/Vezpi/Homelab/tree/main/terraform/projects/semaphore-vms), a workspace, the repository along with its branch and. the variable group:
|
||||

|
||||

|
||||
|
||||
Running the template gives me some additional options related to Terraform:
|
||||

|
||||

|
||||
|
||||
After the Terraform plan, I'm proposed to apply, cancel or stop:
|
||||

|
||||

|
||||
|
||||
Finally after hitting ✅ to apply, I could watch Terraform build the VMs, just like using the CLI. At the end, the VMs were successfully deployed on Proxmox:
|
||||

|
||||

|
||||
|
||||
---
|
||||
## Conclusion
|
||||
|
||||