使用 Jenkins 和儲存器來配置掃描自動化
HCL Harbor 和 HCL FlexNet Operations 入口網站 (FNO) 顯示的 HCL®AppScan® 來源 指令行介面 (CLI) 儲存器可搭配 Jenkins 自動化靜態分析掃描,無須安裝 AppScan® 來源 的完整執行個體。
- 準備應用程式
- 準備執行時期環境
- 從儲存器映像檔啟動掃描
必備項目
- Jenkins 環境,包括另一個已安裝 Docker 的 Linux 代理程式/主機。
這是目標為使用 CLI 儲存器執行靜態分析掃描的系統。
-
AppScan® Source for Automation 的有效授權和相關授權伺服器資訊。
-
AppScan® 來源 CLI 儲存器映像檔
從 HCL Harbor 或 HCL FNO 下載 AppScan® 來源 CLI 儲存器映像檔。取得有效的授權後,您的 HCL ID 會將存取權授與這些位置。
-
AppScan® 來源 CLI script
在 Jenkins 管線中使用儲存器進行掃描時,需要 Script。
-
從儲存器存取 Jenkins 主機/代理程式上的內容:
要掃描的應用程式必須可從執行掃描的 Jenkins 主機存取。
註: 在掃描實例化期間,磁區對映(儲存器主機上的路徑對映到儲存器中的路徑)會用於此用途。
準備要掃描的應用程式
paf
/ppf
檔案- 資料夾掃描
paf
/ppf
檔案準備要掃描的應用程式- 在已安裝 AppScan® 來源 的 Linux 系統上,產生使用 HCL®AppScan® Source for Analysis 用戶端的
paf
/ppf
檔案。請確定
paf
和ppf
檔案位於要掃描的應用程式根目錄。 - 請確定可以從 Jenkins 主機/代理程式存取應用程式檔案和
paf
/ppf
檔案。例如,如果應用程式可在 Jenkins 主機/代理程式的根路徑
/usr/user1/SampleApp
存取, 則paf
/ppf
檔案位於/usr/user1/SampleApp/SampleApp.paf
和/usr/user1/SampleApp/SampleApp.ppf
。 - 決定儲存器所看到的磁區名稱。 例如,在主機上將
/usr/user1
對映至儲存器中的cvol
。註: 在儲存器中執行 CLI 時,會指定磁區對映。 - 建立 CLI Script。例如,/
usr/user1/SampleApp
中的SampleApp.script
。在這個範例中,Script 會告知儲存器使用cvol
路徑來存取應用程式內容。列出的指令會與 AppScan® 來源 CLI 搭配使用(不需人為介入即可掃描)。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
- 請確定可以從 Jenkins 主機/代理程式存取應用程式檔案。
例如,可在 Jenkins 主機/代理程式的路徑 /
usr/user1/SampleApp
中存取應用程式。 - 決定儲存器所看到的磁區名稱。例如,在主機上將
/usr/user1
對映至儲存器中的cvol
。註: 在儲存器中執行 CLI 時,會指定磁區對映。 - 建立 CLI Script。例如
/usr/user1/SampleApp
中的SampleApp.script
。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
在 Jenkins 主機/代理程式上準備執行時期環境
- 從 HCL FNO 將 AppScan® 來源 CLI 儲存器下載至 Jenkins 主機,或直接從 HCL Harbor 存取。
如果是從 HCL FNO 下載,請使用
docker load
指令載入 CLI 儲存器映像檔。 - 建立包含環境變數清單的檔案(例如
env.list
),這些環境變數必須在掃描期間可供 CLI 儲存器使用。部分的必要資訊包括:
您可以在這裡找到完整的參數清單。AS_INSTALL_MODE=standalone AS_LICENSE_TYPE=CLS AS_LICENSE_SERVER_ID=<specify the license server ID>
使用儲存器映像檔啟動靜態分析掃描
- 使用來自 HCL Harbor 的儲存器映像檔
- 使用 FlexNet Operations (FNO) 中的儲存器映像檔
使用來自 HCL Harbor 的儲存器映像檔來啟動掃描
- Linux將下列 Shell 指令併入 Jenkins 管線,以掃描 SampleApp。請注意, 在 Jenkins 主機/代理程式上的
/usr/user1
會對映至儲存器中的cvol
。根據需要的 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
- Docker Jenkins 外掛程式將下列 Docker Jenkins 外掛程式 API 併入 Jenkins 管線,以掃描 SampleApp。請注意, 在 Jenkins 主機/代理程式上的
/usr/user1
會對映至儲存器中的cvol
。根據需要的 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"
使用來自 HCL FNO 的儲存器映像檔來啟動掃描
tar.gz
)。必須先載入儲存器映射檔,再使用掃描。- 將儲存器映射檔下載至 Jenkins 主機/代理程式。例如
/appscansrc/appscan-src-cli-10.1.0.tar.gz
。在使用前必須先載入儲存器映射檔。
- 使用 Linux Shell 指令或 Docker Linux 外掛程式來執行掃描:
- Linux將下列 Shell 指令併入 Jenkins 管線,以掃描 SampleApp。請注意, 在 Jenkins 主機/代理程式上的
/usr/user1
會對映至儲存器中的cvol
。根據需要的 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"
- Docker Jenkins 外掛程式將下列 Docker Jenkins 外掛程式 API 併入 Jenkins 管線,以掃描 SampleApp。請注意, 在 Jenkins 主機/代理程式上的
/usr/user1
會對映至儲存器中的cvol
。根據需要的 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