Page 1 sur 1

Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : mar. avr. 15, 2025 10:01 am
par olivier252
Bonjour,
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
/!\ /!\ /!\EDIT /!\ /!\ /!\ J'ai créé cette doc qui m'a permis d'arriver à gérer l'automatisation de mes cas de tests ici :
https://gitlab.com/olivier-252-group/do ... type=heads
N'hésitez pas à consulter et améliorer (c'est un travail de débutant)
J'espère que ça donnera des bases. Merci au support Squash pour son aide précieuse.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nouveau sur Squash je cherche à connecter une instance locale squash à un projet qui comporte des tets e2e développés à l'aide de playwright. La finalité est de pouvoir jouer une suite de test à partir de Squash. Ca fait pas mal de temps que je transpire sur le sujet...J'utilise pour l'instant l'offre gratuite community en v9 locale en tant qu'utilisateur admin par défaut.

Voici ce que j'ai fait :



1/création url publique : http://localhost:8080/squash/
2 Création d'un cas de test comme ceci

3/création d'un server de partage de code source comme ceci :

4/ Création du server orchestrator c'est là que ça se complique pour moi

A ce stade je lance la commande

Code : Tout sélectionner

docker pull squashtest/squash-orchestrator:4.5.0
Je lance l'iage comme dit dans la doc :

Code : Tout sélectionner

docker run -d \
    --name orchestrator \
    -p 7774:7774 \
    -p 7775:7775 \
    -p 7776:7776 \
    -p 38368:38368 \
    -e SSH_CHANNEL_HOST=127.0.0.1 \
    -e SSH_CHANNEL_USER=admin \
    -e SSH_CHANNEL_PASSWORD=admin \
    -e SSH_CHANNEL_TAGS=ssh,linux,playwright \
    squashtest/squash-orchestrator:4.5.0
Le retour de

Code : Tout sélectionner

docker ps
montre bien que le container est démarré :

Code : Tout sélectionner

CONTAINER ID   IMAGE                                  COMMAND                  CREATED        STATUS        PORTS                                                                              NAMES
aa84d4a30d7d   squashtest/squash-orchestrator:4.5.0   "python /usr/local/l…"   12 hours ago   Up 12 hours   12312/tcp, 0.0.0.0:7774-7776->7774-7776/tcp, 0.0.0.0:38368->38368/tcp, 24368/tcp   squash-orchestrator
D'autre part l'instance de squash répond bien à la commande :

Code : Tout sélectionner

curl https://squashtm.example.com/squash/isSquashAlive
A priori je ne peux pas récupérer orchestrator lorsque je clique sur le lien 'A propos de squash orchestrator' ?

5/Je configure ce workflow au niveau de mon projet
Là encore il y a des zones d'ombre (cf commentaires sur la capture d'écran
Notamment, je n'accède pas à mon seveur de partage de code source que j'ai pourtant crée ?
Image

Du coup ma question est : au vu des éléments fournis qu'est-ce qui paraît bloquant pour finaliser l'orchestration de mon test automatisé côté playwright ?

Merci

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : jeu. avr. 17, 2025 5:41 pm
par Adrian
Bonjour,

Malheureusement, les captures d’écran semblent cassées de mon côté, je ne peux donc pas vraiment vous aider pour l’instant.
Pourriez-vous nous renvoyer des captures fonctionnelles, ou à défaut, nous fournir une explication par écrit ?

Par ailleurs, si vous obtenez une erreur en cliquant sur "En savoir plus" dans l’orchestrateur, cela peut provenir de l’URL ou du token d’authentification.
Je remarque que dans votre commande docker run de l’orchestrateur, vous n’avez pas injecté de clé publique. Un token temporaire par défaut doit donc apparaître dans les logs du container, récupérable avec la commande suivante :

Code : Tout sélectionner

docker logs {nom_de_votre_container} 2>&1 \
    | grep --after-context=10 "Creating temporary JWT token"
Bien à vous,
Adrian

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : ven. avr. 18, 2025 2:16 pm
par olivier252
Bonjour et merci pour votre retour,

j'ai tenté en effet de générer un JWT. J'ai posé la commande de manière générique afin de ne pas l'alourdir vu la longueur d'un token. D'autre part j'ai cru comprendre que l'image docker orchestrator ne supportait pas playwright ?

Bien cordialement

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : ven. avr. 18, 2025 3:25 pm
par GambettaLimonade
Bonjour Olivier,

Je suis un simple utilisateur de Squash qui essaye de se former, je rencontre le même problème que vous (viewtopic.php?p=15574#p15574) , je lance un contenaire docker grace à la commande

Code : Tout sélectionner

docker run -d \
         --name orchestrator \
         -p 7774:7774 \
         -p 7775:7775 \
         -p 7776:7776 \
         -p 38368:38368 \
         -e SSH_CHANNEL_HOST=the_environment_ip_or_hostname \
         -e SSH_CHANNEL_USER=user \
         -e SSH_CHANNEL_PASSWORD=secret \
         -e SSH_CHANNEL_TAGS=ssh,linux,robotframework \
         squashtest/squash-orchestrator:latest
puis je recupère le token dans les logs docker, je rentre ce jeton dans la partie Administration/Servers et dans la partie Administration/Projets mais dans les logs docker je vois ça :

[2025-04-18 13:16:13,443] WARNING in receptionist: Not a known format, expecting JSON or YAML.
[2025-04-18 13:16:13,464] WARNING in killswitch: Not a valid UUID.

Donc je pense qu'on ne génère pas un bon token je ne sais pas trop... Si vous avez du nouveau ou si vous avancez de votre côté n'hésitez pas à me contacter ici, ou sur Linkedin (https://fr.linkedin.com/in/issam-merikhi) ou par mail même s'il risque de tomber dans les indésirables (issammerikhi@outlook.fr)

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : ven. avr. 18, 2025 4:03 pm
par GambettaLimonade
Bonjour Olivier, j'ai un peu de nouveau, j'ai suivi cette doc : https://opentestfactory.org/admin/insta ... tabbed_1_2 pour créer un "agent" depuis docker et ça m'a permis effectivement de récupérer un token JWT valide, et une fois que je le rentre côté server j'ai maintenant ça :

1 test agent windows IDLE

ou avant j'avais ça

1 the_environment_ip_or_hostname linux, robotframework, ssh UNREACHABLE

donc maintenant ce n'est plus UNREACHABLE, et du côté test auto y a écrit :
Tous les orchestrateurs liés au plan de test sont joignables :
comme sur la doc (https://tm-fr.doc.squashtest.com/v8/use ... -auto.html)

C:\Users\IssamMERIKHI>opentf-agent --host http://127.0.0.1 --tags windows --token %TOKEN%
INFO:root:OpenTestFactory Agent version 1.7.0.
WARNING:root:No encoding specified but console encoding is not 65001 (utf-8).
INFO:root:Registering agent on http://127.0.0.1:24368/agents.
INFO:root:OpenTestFactory Orchestrator version 0.69.0.
INFO:root:Agent ready, will poll every 5 seconds.

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : dim. avr. 20, 2025 3:12 pm
par olivier252
Bonjour et merci pour vos retours,

Du coup j'ai creusé un peu plus aujourd'hui mais je ne suis pas débloqué pour autant. Je vais essayer d'être le plus clair possible dans la démarche que j'ai suivie pour générer un token au format JWT.

1 - J'ai généré une paire de clés publique et privée selon la doc :

Code : Tout sélectionner

openssl genrsa -out trusted_key.pem 4096
openssl rsa -pubout -in trusted_key.pem -out trusted_key.pub
2 - je teste que les 2 clés sont correctement appareillées avec :

Code : Tout sélectionner

$ openssl rsa -noout -modulus -in "C:\Users\mypath\trusted_key.pem" | openssl md5
MD5(stdin)= 2ecd2bef1ace......

$ openssl rsa -pubin -noout -modulus -in "C:\Users\mypath\trusted_key.pub" | openssl md5
MD5(stdin)= 2ecd2bef1ace......
3 Je vérifie que squashtf est bien monté dans le conteneur :

Code : Tout sélectionner

>> docker exec -it orchestrator ls -l /etc/squashtf/
total 4
-rw-r--r-- 1 root root 800 Apr 20 10:17 trusted_key.pub
4 De là je lance le docker run avec la config de ma clé publique un docker ps me confirme que le conteneur est bien démarré

Code : Tout sélectionner

 -v /c/Users/mypath/trusted_key.pub:/etc/squashtf/trusted_key.pub \
5 je lance le script python (merci GambettaLimonade, je n'avais pas exploré ce coin de la doc). Pour cela je fais :

Code : Tout sélectionner

import jwt  # Use 'pip install PyJWT[crypto]' to ensure the library is available

ISSUER = 'squash-issuer'
USER = 'squash-user'

with open('trusted_key.pem', 'r') as f: pem = f.read()

# create a signed token
token = jwt.encode({'iss': ISSUER, 'sub': USER}, pem, algorithm='RS512')
print(token)
Je déplace la clé privée au niveau de ce script que j'exécute avec commande

Code : Tout sélectionner

python generate_jwt.py
qui me retourne le token.

6 Commencent les problèmes, je veux tester le retour API via :

Code : Tout sélectionner

 curl -v -H "Authorization: bearer eyJhbGciOiJSUzU....." http://localhost:7775/channels
Le log me renvoie une 401, le token est invalide

Code : Tout sélectionner

{"apiVersion":"v1","code":401,"details":null,"kind":"Status","message":"Invalid JWT token.","metadata":{},"reason":"Unauthorized","status":"Failure"}
Je tente un

Code : Tout sélectionner

$ curl http://localhost:7775/
qui me fournit le même retour.
Je test pour voir si le port 7775 est accessible, il l'est :

Code : Tout sélectionner

netstat -an | findstr 7775
  TCP    0.0.0.0:7775           0.0.0.0:0              LISTENING
  TCP    [::]:7775              [::]:0                 LISTENING
  TCP    [::1]:7775             [::]:0                 LISTENING
J'ai également testé

Code : Tout sélectionner

docker logs {nom_de_votre_container} 2>&1 | grep --after-context=10 "Creating temporary JWT token"
mais cela me retourne comme GambettaLimonade les logs d'erreur suivants dans docker compose :

Code : Tout sélectionner

[2025-04-20 10:19:14,031] WARNING in observer: No Bearer token
[2025-04-20 10:20:53,336] WARNING in observer: Invalid JWT token.
Merci

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : lun. avr. 21, 2025 7:21 pm
par olivier252
Bonjour à vous,
Edit de mon message précédent, le soucis que je rencontrais provenait d'une coquille entre git bash et powershell au niveau des commandes, my bad.
En revanche je pense qu'il y a un soucis sur la commande :

Code : Tout sélectionner

docker pull squashtest/squash-orchestrator:4.5.0
Car in fine j'obtenais un message qui dit qu'il faut utiliser une version de squash orchestrator au moins supérieure à la v 4.14.0. Derrière cette ligne il doit rester une image antérieure, il m'a fallu ajouter 'latest' en fin de commande.

Du coup GambettaLimonade nous en sommes au même point, j'ai pu créer un agent en suivant en utilisant le tag windows avec la commande :

Code : Tout sélectionner

opentf-agent --host http://127.0.0.1 --tags windows --token eyJhbG....
Image

En revanche, j'ahttps://i.postimg.cc/nhdkmjKw/1226037-C-3-EF4-4628-B6-A1-81-FC0-E9-B6076.pngi créé une itération avec un seul cas de test dans un premier temps et j'ai un statut unreachable sur la dernière roue crantée au survol de celle-ci.

Image


Bien à vous

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : mar. avr. 22, 2025 11:43 am
par kung
Bonjour,

Le nombre indiqué derrière squash-orchestrator correspond à la version de l'image à récupérer.

La version 4.5.0 date d'un petit moment déjà, pourriez-vous nous indiquer où vous l'avez vu mentionnée ?

Notre documentation est versionnée, si vous suivez le guide d'installation d'une version spécifique de Squash TM vous devriez avoir un orchestrateur compatible.

Vous pouvez également voir si besoin la liste des versions disponibles sur dockerhub.

Concernant l'environnement UNREACHABLE, je suppose que vous avez utilisé la même commande indiquée dans les commentaires précédents pour lancer le container, avec les variables SSH_CHANNEL_* déjà définies ?

Ces variables permettent de définir rapidement un environnement d'exécution SSH au lancement du container. Elles ne sont pas obligatoires et ne sont à utiliser que si vous souhaitez en ajouter un. Il faut également que les informations renseignées correspondent à un environnement joignable.

Les environnements d'exécution doivent avoir en tag un OS (windows, linux, ...) mais également des tags liés aux technologies d'automatisation. Dans votre cas, il faudra donc ajouter playwright dans la liste (et donc lancer l'agent avec --tags windows,playwright).

Cordialement

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : mar. avr. 22, 2025 12:21 pm
par olivier252
Bonjour,

En effet j'avais mis à jour le docker run entre temps me rendant compte de mon erreur, mais peut-être mal configuré encore ?

Code : Tout sélectionner

docker run -d `
>>  --name orchestrator `
>>  -p 7774:7774 `
>>  -p 7775:7775 `
>>  -p 7776:7776 `
>>  -p 38368:38368 `
>>  -p 24368:24368 `
>>  -p 12312:12312 `
>>  -e SSH_CHANNEL_HOST=the_environment_ip_or_hostname `
>>  -e SSH_CHANNEL_USER=user `
>>  -e SSH_CHANNEL_PASSWORD=secret `
>>  -e SSH_CHANNEL_TAGS=ssh,windows,robotframework,playwright `
Quant à l'image je l'ai trouvée ici :
https://autom-devops-fr.doc.squashtest. ... stall.html

Merci pour votre aide

Cordialement

Re: Impossible de créer un serveur d'exécution avec Orchestrator ?

Publié : sam. mai 03, 2025 7:47 pm
par olivier252
Bonjour,
J'ai formalisé une doc ici qui retrace les actions effectuées afin d'automatiser une suite de tests à l'aide de Squash.
Je fais largement référence à la doc en elle-même ainsi qu'à l'aide apportée par le support (merci à eux pour leur aide précieuse :))
Ceci est un travail de débutant, n'hésitez pas à consulter et améliorer si le coeur vous en dit !

https://gitlab.com/olivier-252-group/do ... type=heads