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 Portail My HCLSoftware portal (MHS), peut être utilisé pour automatiser les examens d'analyse statique avec Jenkins, et sans installer une instance complète de AppScan® Source.
Conditions préalables
- Environnement Jenkins, comprenant un ou plusieurs agents/hôtes Linux avec Podman 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 My HCLSoftware portal. 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éparez 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
pafetppfse trouvent dans le dossier root de l'application à examiner. - Assurez-vous que les fichiers d'application et les fichiers
paf/ppfsont accessibles depuis l'hôte/agent Jenkins.Par exemple, si l'application est accessible au chemin root
/usr/user1/SampleAppsur l'hôte/agent Jenkins, les fichierspaf/ppfsont situés dans/usr/user1/SampleApp/SampleApp.pafet/usr/user1/SampleApp/SampleApp.ppf. - Déterminez le nom du volume tel qu'il est vu par le conteneur.Par exemple, mappez l'hôte
/usr/user1surcvoldans 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.scriptdans /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/SampleAppsur l'hôte/agent Jenkins. - Déterminez le nom du volume tel qu'il est vu par le conteneur.Par exemple, mappez l'hôte
/usr/user1surcvoldans 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.scriptdans/usr/user1/SampleApp.login … of /cvol/SampleApp/SampleAll 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 AppScan® Source sur l'hôte Jenkins à partir de Portail My HCLSoftware portal 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
podman loadsi elle a été téléchargée à partir de MHS. - 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_URL=<license server url>
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 My HCLSoftware portal
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/user1sur l'hôte/agent Jenkins est mappé àcvoldans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.sh "podman run --rm --volume /usr/user1:/cvol --env-file /cvol/SampleApp/ env.list hclcr.io/appscan/appscan-src-cli:10.10.0 script /cvol/SampleApp/SampleApp.script - Plugin Podman JenkinsIncorporez le plugin API Podman Jenkins suivant dans un pipeline Jenkins pour examiner l'application SampleApp. Notez que
/usr/user1sur l'hôte/agent Jenkins est mappé àcvoldans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.podman.image('hclcr.io/appscan/appscan-src-cli:10.10.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "podman logs --follow container-SampleApp"
Lancez une analyse à l'aide de l'image du conteneur de Portail My HCLSoftware portal
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.10.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 Podman Linux :
- LinuxIncorporez la commande shell suivante dans un pipeline Jenkins pour analyser l'application SampleApp. Notez que
/usr/user1sur l'hôte/agent Jenkins est mappé àcvoldans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.podman load -i /appscansrc/appscan-src-cli-10.10.0.tar.gz sh "podman run --rm --env-file /cvol/SampleApp/env.list --volume /usr/user1:/cvol appscansrc/appscan-src-cli:10.10.0 script /cvol/SampleApp/cli.script" - Plugin Podman JenkinsIncorporez le plugin API Podman Jenkins suivant dans un pipeline Jenkins pour examiner l'application SampleApp. Notez que
/usr/user1sur l'hôte/agent Jenkins est mappé àcvoldans le conteneur. Ajustez la chaîne de version en fonction de la version souhaitée du conteneur CLI.podman.image(‘appscan-src-cli:10.10.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "podman logs --follow container-SampleApp"
- Linux