5a0a49a9c8
Multi-provider (Linode/AWS/FlokiNET) scan orchestration: - Flatten all country CIDRs, chunk by IP count (sprint/balanced/economy presets) - Assign chunks round-robin across providers - Cost+time estimate table before deploy - Ansible provisions N nodes in parallel, runs masscan/nmap/probe per node - Results fetched back and merged into unified JSON report - Scanner IPs logged per engagement for client IR reporting - Operator IP whitelisting, enhanced OPSEC mode, YAML targets.yaml support
30 lines
866 B
YAML
30 lines
866 B
YAML
---
|
|
# Run the assigned scan on this WEBRUNNER node
|
|
# Per-node vars: node_name, node_cidrs, node_ip_count, node_idx
|
|
# Global vars (from extra-vars): scan_mode, ports_str, masscan_rate, webrunner_name, deployment_id
|
|
|
|
- name: Write CIDR list for {{ node_name }}
|
|
copy:
|
|
content: "{{ node_cidrs | join('\n') }}\n"
|
|
dest: /root/webrunner/cidrs.txt
|
|
mode: '0644'
|
|
|
|
- name: Run scan on {{ node_name }} ({{ node_ip_count }} IPs, mode={{ scan_mode }})
|
|
command: >
|
|
python3 /root/webrunner/node_scanner.py
|
|
--mode {{ scan_mode }}
|
|
--ports {{ ports_str }}
|
|
--rate {{ masscan_rate }}
|
|
--node-name {{ node_name }}
|
|
args:
|
|
chdir: /root/webrunner
|
|
register: scan_output
|
|
async: 43200
|
|
poll: 60
|
|
ignore_errors: true
|
|
|
|
- name: Show scan output for {{ node_name }}
|
|
debug:
|
|
var: scan_output.stdout_lines
|
|
when: scan_output.stdout_lines is defined
|