Configuration de l'automatisation des examens avec Azure et des conteneurs
Le conteneur de l'interface de ligne de commande (CLI) HCL®AppScan® Source, disponible depuis HCL Harbor et depuis le portail HCL FlexNet Operations (FNO), peut être utilisé pour automatiser les examens d'analyse statique avec Azure, et sans installer une instance complète de AppScan® Source.
- Préparez l'application.
- Préparez l'environnement de pipeline Azure DevOps.
- Lancez l'examen à partir de l'image du conteneur.
Prérequis
- Environnement Azure, y compris un autre agent/hôte Linux sur lequel Docker est installé.
Il s'agit du système ciblé pour exécuter un examen d'analyse statique à l'aide du conteneur de l'interface de ligne de commande.
-
Licence valide pour AppScan® Source for Automation et informations relatives au serveur de licences pertinentes.
-
Image de 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 depuis HCL Harbor ou HCL FNO. Avec une licence valide, votre ID HCL accorde l'accès à ces emplacements.
-
Script d'interface de ligne de commande AppScan® Source
Un script est requis pour l'examen avec le conteneur dans un pipeline Jenkins.
-
Accès au contenu sur l'hôte/l'agent Azure à partir du conteneur :
L'application à examiner doit être accessible à partir de l'hôte Azure exécutant l'examen.
Remarque : Le mappage de volume (chemin de mappage 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 de dossier
paf
/ppf
- Générez le fichier
paf
/ppf
à l'aide du client HCL®AppScan® Source for Analysis sur un système Linux avec AppScan® Source installé.Assurez-vous que les fichiers
paf
etppf
se trouvent à la racine de l'application à examiner. - Assurez-vous que les fichiers d'application et
paf
/ppf
sont accessibles à partir de l'hôte/agent Jenkins.Par exemple, si l'application est accessible au chemin racine
/usr/user1/SampleApp
sur l'hôte/agent Jenkins, les fichierspaf
/ppf
se trouvent au niveau de/usr/user1/SampleApp/SampleApp.paf
et de/usr/user1/SampleApp/SampleApp.ppf
. - Déterminez le nom du volume tel que le conteneur le voit. Par exemple, mappez
/usr/user1
sur l'hôte àcvol
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 d'interface de ligne de commande. Par exemple,
SampleApp.script
dans /usr/user1/SampleApp
.Pour 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 d'application sont accessibles à partir de l'hôte/agent Jenkins.
Par exemple, l'application est accessible au 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
/usr/user1
sur l'hôte àcvol
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 d'interface de ligne de commande. Par exemple,
SampleApp.script
dans/usr/user1/SampleApp
.login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
Préparer l'environnement de pipeline Azure DevOps
- Utilisation de l'image du conteneur à partir d'HCL FlexNet Operations à l'aide de l'éditeur classique.
- Utilisation de l'image du conteneur à partir d'HCL Harbor à l'aide de l'éditeur classique.
- Utilisation de l'image du conteneur à partir d'HCL Harbor à l'aide d'un fichier de configuration YAML.
- Téléchargez le conteneur de l'interface de ligne de commande AppScan® Source sur la machine virtuelle Azure à partir d'HCL FlexNet Operations (FNO).
- Chargez l'image du conteneur de l'interface de ligne de commande à l'aide de la commande
docker load
. - Dans l'organisation Azure DevOps, créez un pipeline à l'aide de l'éditeur classique. Cliquez sur Utiliser l'éditeur classique.
- Sélectionnez le référentiel et la branche où le projet à examiner et le script de l'interface de ligne de commande sont stockés, puis cliquez sur Continuer.
- Sélectionnez Azure Repos Git comme source.
- Sélectionnez Projet d'équipe.
- Sélectionnez le référentiel.
- Sélectionnez le pool d'agents Azure dans lequel la machine virtuelle Azure configurée avec AppScan® Source le conteneur de l'interface de ligne de commande est présente.
- Ajoutez une nouvelle tâche Docker pour charger une image. Incluez les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Indiquez un nom ou utilisez la valeur par défaut.
- Type Container Registry : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une connexion ou utilisez la valeur par défaut.
- Action : Exécuter une commande Docker
- Commande : load -i /usr/user1/appscan-src-cli-10.2.0.tar.gz
- Ajoutez une nouvelle tâche Docker pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 1
- Nom affiché : Indiquez un nom ou utilisez la valeur par défaut.
- Type Container Registry : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une connexion ou utilisez la valeur par défaut.
- Commande : run
- Arguments : --rm
- Nom de l'image : appscan/appscan-src-cli:10.2.0
- Volumes : /usr/user1:/wa
- Variables d'environnement :
- AS_INSTALL_MODE=standalone
- AS_LICENSE_TYPE=CLS
- AS_LICENSE_SERVER_ID=<l'ID du serveur de licences>
- AS_LICENSE_SERVER=hclsoftware
- Commande de conteneur : script /wa/cli.script
- Ajoutez une nouvelle tâche Docker pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Indiquez un nom ou utilisez la valeur par défaut.
- Type Container Registry : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une connexion ou utilisez la valeur par défaut.
- Action : Exécuter une commande Docker
- Commande : rmi appscan/appscan-src-cli:10.2.0
- Créez un fichier (par exemple,
env.list
) contenant les variables d'environnement qui doivent être mises à la disposition du conteneur CLI lors d'un examen. Incluez les informations requises suivantes :-
AS_INSTALL_MODE=standalone
-
AS_LICENSE_TYPE=CLS
-
AS_LICENSE_SERVER_ID=<the license server ID>
Vous trouverez une liste complète des paramètres ici.
-
- Dans l'organisation Azure DevOps, créez un pipeline à l'aide de l'éditeur classique. Cliquez sur Utiliser l'éditeur classique.
- Sélectionnez le référentiel et la branche où le projet à examiner et le script de l'interface de ligne de commande sont stockés, puis cliquez sur Continuer.
- Sélectionnez Azure Repos Git comme source.
- Sélectionnez Projet d'équipe.
- Sélectionnez le référentiel.
- Sélectionnez le pool d'agents Azure dans lequel la machine virtuelle Azure configurée avec AppScan® Source le conteneur de l'interface de ligne de commande est présente.
- Ajoutez une nouvelle tâche Docker pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 2
- Nom affiché : Indiquez un nom ou utilisez la valeur par défaut.
- Container Registry : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécuter une commande Docker
- Commande : run
- Arguments : --rm --env-file /usr/user1/env.list -v $(Agent.BuildDirectory)/s:/wa script hclcr.io/appscan/appscan-src-cli:10.2.0 /wa/cli.script
- Ajoutez une nouvelle tâche Docker pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Indiquez un nom ou utilisez la valeur par défaut.
- Type Container Registry : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécuter une commande Docker
- Commande : rmi appscan/appscan-src-cli:10.2.0
Pour préparer le pipeline Azure DevOps à l'aide de l'image de conteneur d'HCL Harbor avec YAML
Utilisez l'exemple de script suivant comme guide pour exécuter un examen d'analyse statique à l'aide d'un conteneur d'interface de ligne de commande AppScan Source à partir d'HCL Harbor.
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- main
pool:
name: Ubuntu-VM-pool
#vmImage: ubuntu-latest
#steps:
#- script: echo Hello, world!
# displayName: 'Run a one-line script'
steps:
- task: CmdLine@2
inputs:
script: |
- task: Docker@1
displayName: 'Run an image'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'MyConnection’
command: 'Run an image'
arguments: '--rm'
imageName: 'hclcr.io/appscan/appscan-src-cli:10.2.0 '
volumes: '$(Agent.WorkFolder)<path to downloaded source files>:/wa'
envVars: |
AS_INSTALL_MODE=standalone
AS_LICENSE_TYPE=CLS
AS_LICENSE_SERVER_ID=<specify the license server ID>
AS_LICENSE_SERVER=<specify the license server name>
containerCommand: 'script /wa/cli.script'
runInBackground: false
- task: Docker@0
displayName: Clean
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryConnection: 'MyConnection'
action: 'Run a Docker command'
customCommand: ' rmi hclcr.io/appscan/appscan-src-cli:10.2.0'
Lancer un examen d'analyse statique à l'aide de l'image du conteneur
Pour lancer l'examen à l'aide de pipeline :
- Dans Azure, assurez-vous que la machine virtuelle Azure dans le pool d'agents Azure est en ligne.
- Sur la page Pipelines, sélectionnez le pipeline à exécuter.
- Sélectionnez Exécuter le pipeline pour démarrer l'examen d'analyse statique.