Skip to content
Snippets Groups Projects
2-scan.yml 2.71 KiB
Newer Older
Marica Antonacci's avatar
Marica Antonacci committed
---
Gioacchino Vino's avatar
Gioacchino Vino committed
- name: Set SSH tunel
  command: ssh -o StrictHostKeyChecking=no -f -N -L localhost:9390:scans.cloud.infn.it:9390 jenkins@scans.cloud.infn.it 
- name: Copy scan script
    src: files/scan.py
Gioacchino Vino's avatar
Gioacchino Vino committed
    dest: "{{ paas_ci_workdir + '/scan.py' }}"
- name: Copy utilities module
  copy: 
Gioacchino Vino's avatar
Gioacchino Vino committed
    src: files/scan_utilities.py
Gioacchino Vino's avatar
Gioacchino Vino committed
    dest: "{{ paas_ci_workdir + '/scan_utilities.py' }}"

- name: Copy gvm_library module
  copy: 
Gioacchino Vino's avatar
Gioacchino Vino committed
    src: files/scan_gvm_library.py
Gioacchino Vino's avatar
Gioacchino Vino committed
    dest: "{{ paas_ci_workdir + '/scan_gvm_library.py' }}"

- name: Adding execution permission to scan script
  file: 
Gioacchino Vino's avatar
Gioacchino Vino committed
    dest: "{{ paas_ci_workdir + '/scan.py' }}"
Gioacchino Vino's avatar
Gioacchino Vino committed
- name: Load depdep log
  command: cat "{{ paas_ci_workdir + '/dep.json' }}"
  register: dep_json

- name: import depdep_log
  set_fact:
    imported_depdep_log: "{{ dep_json.stdout }}"

- name: Show depdep log
  debug:
    var: imported_depdep_log
- name: Show paas_ci_test.endpoints_to_scan log
Gioacchino Vino's avatar
Gioacchino Vino committed
  debug:
    var: paas_ci_test.endpoints_to_scan

- name:  Run scan without endpoints_to_scan variable
  command: "{{ paas_ci_workdir + '/scan.py' }} --dep-json {{ paas_ci_workdir + '/dep.json'}} --output-dir {{ paas_ci_workdir }}" 
  register: scan_output
Gioacchino Vino's avatar
Gioacchino Vino committed
  when: paas_ci_test.endpoints_to_scan is undefined

- name:  Run scan with endpoints_to_scan variable
Gioacchino Vino's avatar
Gioacchino Vino committed
  command: "{{ paas_ci_workdir + '/scan.py' }} --endpoint-keys {{ paas_ci_test.endpoints_to_scan }} --dep-json {{ paas_ci_workdir + '/dep.json'}} --output-dir {{ paas_ci_workdir }}" 
  register: scan_output
  when: paas_ci_test.endpoints_to_scan is defined
- name: Show scan output
  debug:
    msg: "{{ scan_output }}"

- name: Find report files
  find:
Gioacchino Vino's avatar
Gioacchino Vino committed
    paths: "{{ paas_ci_workdir }}"
    patterns: '*-report.txt'
  register: report_files

- name: read summary report file
Gioacchino Vino's avatar
Gioacchino Vino committed
  shell: cat "{{ paas_ci_workdir + '/summary-report.json' }}"
  register: summary_report 
- name: import summary_report
  set_fact:
    summary_report_json: "{{ summary_report.stdout | from_json }}"
- name: Show reports
Gioacchino Vino's avatar
Gioacchino Vino committed
    msg: "{{ lookup('file', item.path) }}"
  with_items: "{{ report_files.files }}"
  when: summary_report_json.global == 'NOK'
- name: Show scan log if vulnerability detected
  block:
  - name: Load log
    command: cat "{{ paas_ci_workdir + '/scan.log' }}"
    register: log
  - name: import log
    set_fact:
      imported_log: "{{ log.stdout }}"
  - name: Show log
    debug:
      var: imported_log
  when: summary_report_json.global == 'NOK'
Gioacchino Vino's avatar
Gioacchino Vino committed

- name: Detailed report summary
  debug:
    var: summary_report_json
- name: Report Summary
  assert:
    that:
      - summary_report_json.global == 'OK'
    fail_msg: "SCAN FAILED - deployment: {{ summary_report_json.deployment }}"
    success_msg: "SCAN PASSED - deployment: {{ summary_report_json.deployment }}"