260 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - name: Kali Linux 系统测试
 | |
|   hosts: kali
 | |
|   become: yes
 | |
|   gather_facts: yes
 | |
|   
 | |
|   vars:
 | |
|     test_results_dir: "/tmp/kali_test_results"
 | |
|     test_log_file: "{{ test_results_dir }}/kali_test.log"
 | |
|     
 | |
|   tasks:
 | |
|     - name: 创建测试结果目录
 | |
|       file:
 | |
|         path: "{{ test_results_dir }}"
 | |
|         state: directory
 | |
|         mode: '0755'
 | |
|       
 | |
|     - name: 初始化测试日志
 | |
|       copy:
 | |
|         content: "Kali Linux 系统测试日志 - {{ ansible_date_time.iso8601 }}\n\n"
 | |
|         dest: "{{ test_log_file }}"
 | |
|         
 | |
|     - name: 记录系统基本信息
 | |
|       block:
 | |
|         - name: 获取系统信息
 | |
|           setup:
 | |
|           register: system_info
 | |
|             
 | |
|         - name: 记录系统信息到日志
 | |
|           copy:
 | |
|             content: |
 | |
|               === 系统基本信息 ===
 | |
|               主机名: {{ ansible_hostname }}
 | |
|               操作系统: {{ ansible_distribution }} {{ ansible_distribution_version }}
 | |
|               内核版本: {{ ansible_kernel }}
 | |
|               架构: {{ ansible_architecture }}
 | |
|               CPU核心数: {{ ansible_processor_vcpus }}
 | |
|               内存总量: {{ ansible_memtotal_mb }} MB
 | |
|               磁盘空间: {{ ansible_mounts | map(attribute='size_total') | sum | human_readable }}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/system_info.txt"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] 系统基本信息收集完成"
 | |
|             
 | |
|     - name: 测试网络连接
 | |
|       block:
 | |
|         - name: 测试网络连通性
 | |
|           uri:
 | |
|             url: https://www.google.com
 | |
|             method: GET
 | |
|             timeout: 10
 | |
|           register: network_test
 | |
|           ignore_errors: yes
 | |
|             
 | |
|         - name: 记录网络测试结果
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "{% if network_test.failed %}[✗] 网络连接测试失败{% else %}[✓] 网络连接测试成功{% endif %}"
 | |
|             
 | |
|     - name: 测试包管理器
 | |
|       block:
 | |
|         - name: 更新包列表
 | |
|           apt:
 | |
|             update_cache: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 记录包管理器测试结果
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] APT包管理器工作正常"
 | |
|             
 | |
|     - name: 检查Kali工具
 | |
|       block:
 | |
|         - name: 检查常见Kali工具是否安装
 | |
|           command: "which {{ item }}"
 | |
|           loop:
 | |
|             - nmap
 | |
|             - metasploit-framework
 | |
|             - wireshark
 | |
|             - john
 | |
|             - hydra
 | |
|             - sqlmap
 | |
|             - burpsuite
 | |
|             - aircrack-ng
 | |
|           register: tool_check
 | |
|           ignore_errors: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 记录工具检查结果
 | |
|           copy:
 | |
|             content: |
 | |
|               === Kali工具检查结果 ===
 | |
|               {% for result in tool_check.results %}
 | |
|               {{ result.item }}: {% if result.rc == 0 %}已安装{% else %}未安装{% endif %}
 | |
|               {% endfor %}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/tool_check.txt"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] Kali工具检查完成"
 | |
|             
 | |
|     - name: 测试系统安全性
 | |
|       block:
 | |
|         - name: 检查防火墙状态
 | |
|           command: "ufw status"
 | |
|           register: firewall_status
 | |
|           ignore_errors: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 检查SSH配置
 | |
|           command: "grep -E '^PermitRootLogin|^PasswordAuthentication' /etc/ssh/sshd_config"
 | |
|           register: ssh_config
 | |
|           ignore_errors: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 记录安全检查结果
 | |
|           copy:
 | |
|             content: |
 | |
|               === 系统安全检查 ===
 | |
|               防火墙状态:
 | |
|               {{ firewall_status.stdout }}
 | |
|               
 | |
|               SSH配置:
 | |
|               {{ ssh_config.stdout }}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/security_check.txt"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] 系统安全检查完成"
 | |
|             
 | |
|     - name: 测试系统性能
 | |
|       block:
 | |
|         - name: 获取CPU使用率
 | |
|           command: "top -bn1 | grep 'Cpu(s)'"
 | |
|           register: cpu_usage
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 获取内存使用情况
 | |
|           command: "free -h"
 | |
|           register: memory_usage
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 获取磁盘使用情况
 | |
|           command: "df -h"
 | |
|           register: disk_usage
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 记录性能测试结果
 | |
|           copy:
 | |
|             content: |
 | |
|               === 系统性能信息 ===
 | |
|               CPU使用率:
 | |
|               {{ cpu_usage.stdout }}
 | |
|               
 | |
|               内存使用情况:
 | |
|               {{ memory_usage.stdout }}
 | |
|               
 | |
|               磁盘使用情况:
 | |
|               {{ disk_usage.stdout }}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/performance.txt"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] 系统性能测试完成"
 | |
|             
 | |
|     - name: 测试网络工具
 | |
|       block:
 | |
|         - name: 测试ping命令
 | |
|           command: "ping -c 4 8.8.8.8"
 | |
|           register: ping_test
 | |
|           ignore_errors: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 测试nslookup命令
 | |
|           command: "nslookup google.com"
 | |
|           register: nslookup_test
 | |
|           ignore_errors: yes
 | |
|           changed_when: false
 | |
|             
 | |
|         - name: 记录网络工具测试结果
 | |
|           copy:
 | |
|             content: |
 | |
|               === 网络工具测试 ===
 | |
|               Ping测试结果:
 | |
|               {{ ping_test.stdout }}
 | |
|               
 | |
|               NSlookup测试结果:
 | |
|               {{ nslookup_test.stdout }}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/network_tools.txt"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] 网络工具测试完成"
 | |
|             
 | |
|     - name: 生成测试报告
 | |
|       block:
 | |
|         - name: 创建测试报告
 | |
|           copy:
 | |
|             content: |
 | |
|               # Kali Linux 系统测试报告
 | |
|               
 | |
|               **测试时间**: {{ ansible_date_time.iso8601 }}
 | |
|               **测试主机**: {{ ansible_hostname }}
 | |
|               
 | |
|               ## 测试结果摘要
 | |
|               
 | |
|               {% if network_test.failed %}- [✗] 网络连接测试失败{% else %}- [✓] 网络连接测试成功{% endif %}
 | |
|               - [✓] APT包管理器工作正常
 | |
|               - [✓] Kali工具检查完成
 | |
|               - [✓] 系统安全检查完成
 | |
|               - [✓] 系统性能测试完成
 | |
|               - [✓] 网络工具测试完成
 | |
|               
 | |
|               ## 详细结果
 | |
|               
 | |
|               请查看以下文件获取详细测试结果:
 | |
|               - system_info.txt: 系统基本信息
 | |
|               - tool_check.txt: Kali工具检查结果
 | |
|               - security_check.txt: 系统安全检查
 | |
|               - performance.txt: 系统性能信息
 | |
|               - network_tools.txt: 网络工具测试
 | |
|               - kali_test.log: 完整测试日志
 | |
|               
 | |
|               ## 建议
 | |
|               
 | |
|               {% for result in tool_check.results %}
 | |
|               {% if result.rc != 0 %}
 | |
|               - 建议安装 {{ result.item }} 工具: `sudo apt install {{ result.item }}`
 | |
|               {% endif %}
 | |
|               {% endfor %}
 | |
|                             
 | |
|             dest: "{{ test_results_dir }}/README.md"
 | |
|             
 | |
|         - name: 记录到主日志
 | |
|           lineinfile:
 | |
|             path: "{{ test_log_file }}"
 | |
|             line: "[✓] 测试报告生成完成"
 | |
|             
 | |
|     - name: 显示测试结果位置
 | |
|       debug:
 | |
|         msg: "Kali Linux 系统测试完成!测试结果保存在 {{ test_results_dir }} 目录中"
 | |
|         
 | |
|     - name: 显示测试日志最后几行
 | |
|       command: "tail -10 {{ test_log_file }}"
 | |
|       register: log_tail
 | |
|       
 | |
|     - name: 输出测试日志摘要
 | |
|       debug:
 | |
|         msg: "{{ log_tail.stdout_lines }}" |