115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						||
- name: 在Kali Linux上安装和配置VNC服务器
 | 
						||
  hosts: kali
 | 
						||
  become: yes
 | 
						||
  vars:
 | 
						||
    vnc_password: "3131"  # VNC连接密码
 | 
						||
    vnc_port: "5901"      # VNC服务端口
 | 
						||
    vnc_geometry: "1280x1024"  # VNC分辨率
 | 
						||
    vnc_depth: "24"       # 颜色深度
 | 
						||
 | 
						||
  tasks:
 | 
						||
    - name: 更新APT缓存
 | 
						||
      apt:
 | 
						||
        update_cache: yes
 | 
						||
 | 
						||
    - name: 安装VNC服务器和客户端
 | 
						||
      apt:
 | 
						||
        name:
 | 
						||
          - tigervnc-standalone-server
 | 
						||
          - tigervnc-viewer
 | 
						||
          - xfce4
 | 
						||
          - xfce4-goodies
 | 
						||
        state: present
 | 
						||
 | 
						||
    - name: 创建VNC配置目录
 | 
						||
      file:
 | 
						||
        path: /home/ben/.vnc
 | 
						||
        state: directory
 | 
						||
        owner: ben
 | 
						||
        group: ben
 | 
						||
        mode: '0700'
 | 
						||
 | 
						||
    - name: 设置VNC密码
 | 
						||
      shell: |
 | 
						||
        echo "{{ vnc_password }}" | vncpasswd -f > /home/ben/.vnc/passwd
 | 
						||
        echo "{{ vnc_password }}" | vncpasswd -f > /home/ben/.vnc/passwd2        
 | 
						||
      become_user: ben
 | 
						||
 | 
						||
    - name: 设置VNC密码文件权限
 | 
						||
      file:
 | 
						||
        path: /home/ben/.vnc/passwd
 | 
						||
        owner: ben
 | 
						||
        group: ben
 | 
						||
        mode: '0600'
 | 
						||
 | 
						||
    - name: 设置VNC密码文件2权限
 | 
						||
      file:
 | 
						||
        path: /home/ben/.vnc/passwd2
 | 
						||
        owner: ben
 | 
						||
        group: ben
 | 
						||
        mode: '0600'
 | 
						||
 | 
						||
    - name: 创建VNC启动脚本
 | 
						||
      copy:
 | 
						||
        dest: /home/ben/.vnc/xstartup
 | 
						||
        content: |
 | 
						||
          #!/bin/bash
 | 
						||
          unset SESSION_MANAGER
 | 
						||
          unset DBUS_SESSION_BUS_ADDRESS
 | 
						||
          exec startxfce4          
 | 
						||
        owner: ben
 | 
						||
        group: ben
 | 
						||
        mode: '0755'
 | 
						||
 | 
						||
    - name: 创建VNC服务文件
 | 
						||
      copy:
 | 
						||
        dest: /etc/systemd/system/vncserver@.service
 | 
						||
        content: |
 | 
						||
          [Unit]
 | 
						||
          Description=Start TigerVNC server at startup
 | 
						||
          After=syslog.target network.target
 | 
						||
 | 
						||
          [Service]
 | 
						||
          Type=forking
 | 
						||
          User=ben
 | 
						||
          Group=ben
 | 
						||
          WorkingDirectory=/home/ben
 | 
						||
 | 
						||
          PIDFile=/home/ben/.vnc/%H:%i.pid
 | 
						||
          ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
 | 
						||
          ExecStart=/usr/bin/vncserver -depth {{ vnc_depth }} -geometry {{ vnc_geometry }} :%i
 | 
						||
          ExecStop=/usr/bin/vncserver -kill :%i
 | 
						||
 | 
						||
          [Install]
 | 
						||
          WantedBy=multi-user.target          
 | 
						||
 | 
						||
    - name: 重新加载systemd配置
 | 
						||
      systemd:
 | 
						||
        daemon_reload: yes
 | 
						||
 | 
						||
    - name: 启用并启动VNC服务
 | 
						||
      systemd:
 | 
						||
        name: vncserver@1.service
 | 
						||
        enabled: yes
 | 
						||
        state: started
 | 
						||
 | 
						||
    - name: 检查VNC服务状态
 | 
						||
      command: systemctl status vncserver@1.service
 | 
						||
      register: vnc_status
 | 
						||
      ignore_errors: yes
 | 
						||
 | 
						||
    - name: 显示VNC服务状态
 | 
						||
      debug:
 | 
						||
        msg: "{{ vnc_status.stdout_lines }}"
 | 
						||
 | 
						||
    - name: 显示VNC连接信息
 | 
						||
      debug:
 | 
						||
        msg: |
 | 
						||
          VNC服务器已成功配置!
 | 
						||
          连接信息:
 | 
						||
          - 地址: {{ ansible_host }}
 | 
						||
          - 端口: {{ vnc_port }}
 | 
						||
          - 密码: {{ vnc_password }}
 | 
						||
          - 连接命令: vnc://{{ ansible_host }}:{{ vnc_port }}
 | 
						||
          - 使用macOS屏幕共享应用连接到上述地址           |