Configuration de l'automatisation des analyses avec Jenkins et les conteneurs
Le conteneur de l'interface de ligne de commande (CLI) HCL® AppScan® Source, disponible depuis HCL Harbor et HCL Software License Management Portal, peut être utilisé pour automatiser les examens d'analyse statique avec Jenkins, et sans installer une instance complète de AppScan® Source.
- Préparer l'application
- Préparer l'environnement d'exécution
- Lancer l'examen à partir de l'image du conteneur
Conditions préalables
- Environnement Jenkins, y compris un ou plusieurs agents/hôtes Linux avec Docker installé.
Il s'agit du système destiné à exécuter un examen d'analyse statique à l'aide du conteneur de l'interface de ligne de commande.
-
Une licence valide pour AppScan® Source for Automation et des informations pertinentes sur le serveur de licences.
-
Image du conteneur de l'interface de ligne de commande AppScan® Source
Téléchargez l'image du conteneur de l'interface de ligne de commande AppScan® Source à partir de HCL Harbor ou Portail de gestion des licences logicielles HCL. Avec une licence valide, votre ID HCL accorde l'accès à ces emplacements.
-
Script de l'interface de ligne de commande AppScan® Source
Un script est nécessaire pour analyser le conteneur dans un pipeline Jenkins.
-
Accédez au contenu de l'hôte/agent Jenkins à partir du conteneur :
L'application à examiner doit être accessible à partir de l'hôte Jenkins exécutant l'examen.
Remarque : Le mappage de volume (mappage du chemin sur l'hôte du conteneur vers un chemin dans le conteneur) est utilisé à cette fin lors de l'instanciation d'un examen.
Préparer l'application à examiner
- Fichiers
paf
/ppf
- Examen des dossiers
paf
/ppf
- Générez le fichier
paf
/ppf
à l'aide du client HCL® AppScan® Source for Analysis sur un système Linux sur lequel AppScan® Source est installé.Assurez-vous que les fichiers
paf
etppf
se trouvent dans le dossier root de l'application à examiner. - Assurez-vous que les fichiers d'application et les fichiers
paf
/ppf
sont accessibles depuis l'hôte/agent Jenkins.Par exemple, si l'application est accessible au chemin root
/usr/user1/SampleApp
sur l'hôte/agent Jenkins, les fichierspaf
/ppf
sont situés dans/usr/user1/SampleApp/SampleApp.paf
et/usr/user1/SampleApp/SampleApp.ppf
. - Déterminez le nom du volume tel que le conteneur le voit.Par exemple, mappez l'hôte
/usr/user1
surcvol
dans le conteneur.Remarque : Le mappage de volume est spécifié lors de l'exécution de l'interface de ligne de commande dans le conteneur. - Créez le script de l'interface de ligne de commande. Par exemple,
SampleApp.script
dans /usr/user1/SampleApp
.Dans cet exemple, le script indique au conteneur d'accéder au contenu de l'application à l'aide du chemincvol
. Les commandes répertoriées sont celles utilisées avec l'interface de ligne de commande AppScan® Source (Examen sans intervention manuelle).login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
- Assurez-vous que les fichiers de l'application sont accessibles à partir de l'hôte/agent Jenkins.
Par exemple, l'application est accessible via le chemin /
usr/user1/SampleApp
sur l'hôte/agent Jenkins. - Déterminez le nom du volume tel que le conteneur le voit.Par exemple, mappez l'hôte
/usr/user1
surcvol
dans le conteneur.Remarque : Le mappage de volume est spécifié lors de l'exécution de l'interface de ligne de commande dans le conteneur. - Créez le script de l'interface de ligne de commande. Par exemple,
SampleApp.script
dans/usr/user1/SampleApp
.login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
Préparez l'environnement d'exécution sur l'hôte/agent Jenkins
- Téléchargez le conteneur de l'interface de ligne de commande (CLI) AppScan® Source sur l'hôte Jenkins à partir de HCL FNO ou accédez-y directement à partir de HCL Harbor.
Chargez l'image du conteneur de l'interface de ligne de commande (CLI) à l'aide de la commande
docker load
si elle a été téléchargée à partir de HCL FNO. - Créez un fichier (par exemple,
env.list
) contenant une liste de variables d'environnement qui doivent être mises à la disposition du conteneur CLI lors d'une analyse. Voici quelques-unes des informations nécessaires :
Une liste complète des paramètres est disponible ici.AS_INSTALL_MODE=standalone AS_LICENSE_TYPE=CLS AS_LICENSE_SERVER_ID=<specify the license server ID>
Lancez une analyse statique à partir de l'image du conteneur
- A l'aide d'une image de conteneur de HCL Harbor
- A l'aide de l'image du conteneur de Portail de gestion des licences logicielles HCL
Lancer un examen à l'aide d'une image de conteneur à partir de HCL Harbor
- LinuxIncorporez la commande shell suivante dans un pipeline Jenkins pour analyser l'application SampleApp. Notez que
/usr/user1
sur l'hôte/agent Jenkins est mappé àcvol
dans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.sh "docker run --rm --volume /usr/user1:/cvol --env-file /cvol/SampleApp/ env.list hclcr.io/appscan/appscan-src-cli:10.1.0 script /cvol/SampleApp/SampleApp.script
- Plugin Docker JenkinsIncorporez le plugin API Docker Jenkins suivant dans un pipeline Jenkins pour analyser l'application SampleApp. Notez que
/usr/user1
sur l'hôte/agent Jenkins est mappé àcvol
dans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.docker.image('hclcr.io/appscan/appscan-src-cli:10.1.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "docker logs --follow container-SampleApp"
Lancez une analyse à l'aide de l'image du conteneur de Portail de gestion des licences logicielles HCL
tar.gz
). L'image du conteneur doit être chargée avant d'être utilisée pour l'examen.- Téléchargez l'image du conteneur sur l'hôte/agent Jenkins. Par exemple,
/appscansrc/appscan-src-cli-10.1.0.tar.gz
.L'image du conteneur doit être chargée avant utilisation.
- Exécutez l'analyse à l'aide d'une commande shell Linux ou du plugin Docker Linux :
- LinuxIncorporez la commande shell suivante dans un pipeline Jenkins pour analyser l'application SampleApp. Notez que
/usr/user1
sur l'hôte/agent Jenkins est mappé àcvol
dans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.docker load -i /appscansrc/appscan-src-cli-10.1.0.tar.gz sh "docker run --rm --env-file /cvol/SampleApp/env.list --volume /usr/user1:/cvol appscansrc/appscan-src-cli:10.1.0 script /cvol/SampleApp/cli.script"
- Plugin Docker JenkinsIncorporez le plugin API Docker Jenkins suivant dans un pipeline Jenkins pour analyser l'application SampleApp. Notez que
/usr/user1
sur l'hôte/agent Jenkins est mappé àcvol
dans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.docker.image(‘appscan-src-cli:10.1.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "docker logs --follow container-SampleApp"
- Linux