114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: Setup Xfce desktop environment and Chrome Dev for browser automation
 | 
						|
  hosts: browser
 | 
						|
  become: yes
 | 
						|
  vars:
 | 
						|
    target_user: ben
 | 
						|
 | 
						|
  tasks:
 | 
						|
    - name: Update package lists
 | 
						|
      apt:
 | 
						|
        update_cache: yes
 | 
						|
        cache_valid_time: 3600
 | 
						|
 | 
						|
    - name: Install Xfce desktop environment
 | 
						|
      apt:
 | 
						|
        name:
 | 
						|
          - xfce4
 | 
						|
          - xfce4-goodies
 | 
						|
          - lightdm
 | 
						|
          - xorg
 | 
						|
          - dbus-x11
 | 
						|
        state: present
 | 
						|
 | 
						|
    - name: Install additional useful packages for desktop environment
 | 
						|
      apt:
 | 
						|
        name:
 | 
						|
          - firefox-esr
 | 
						|
          - geany
 | 
						|
          - thunar-archive-plugin
 | 
						|
          - xfce4-terminal
 | 
						|
          - gvfs
 | 
						|
          - fonts-noto
 | 
						|
          - fonts-noto-cjk
 | 
						|
        state: present
 | 
						|
 | 
						|
    - name: Download Google Chrome Dev .deb package
 | 
						|
      get_url:
 | 
						|
        url: https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb
 | 
						|
        dest: /tmp/google-chrome-unstable_current_amd64.deb
 | 
						|
        mode: '0644'
 | 
						|
 | 
						|
    - name: Install Google Chrome Dev
 | 
						|
      apt:
 | 
						|
        deb: /tmp/google-chrome-unstable_current_amd64.deb
 | 
						|
 | 
						|
    - name: Clean up downloaded .deb package
 | 
						|
      file:
 | 
						|
        path: /tmp/google-chrome-unstable_current_amd64.deb
 | 
						|
        state: absent
 | 
						|
 | 
						|
    - name: Install Chrome automation dependencies
 | 
						|
      apt:
 | 
						|
        name:
 | 
						|
          - python3-pip
 | 
						|
          - python3-venv
 | 
						|
          - python3-dev
 | 
						|
          - build-essential
 | 
						|
          - libssl-dev
 | 
						|
          - libffi-dev
 | 
						|
        state: present
 | 
						|
 | 
						|
    - name: Install Python packages for browser automation
 | 
						|
      pip:
 | 
						|
        name:
 | 
						|
          - selenium
 | 
						|
          - webdriver-manager
 | 
						|
          - pyvirtualdisplay
 | 
						|
        executable: pip3
 | 
						|
 | 
						|
    - name: Set up Xfce as default desktop environment
 | 
						|
      copy:
 | 
						|
        dest: /etc/lightdm/lightdm.conf
 | 
						|
        content: |
 | 
						|
          [Seat:*]
 | 
						|
          autologin-user={{ target_user }}
 | 
						|
          autologin-user-timeout=0
 | 
						|
          autologin-session=xfce
 | 
						|
          user-session=xfce          
 | 
						|
 | 
						|
    - name: Ensure user is in necessary groups
 | 
						|
      user:
 | 
						|
        name: "{{ target_user }}"
 | 
						|
        groups:
 | 
						|
          - audio
 | 
						|
          - video
 | 
						|
          - input
 | 
						|
          - netdev
 | 
						|
        append: yes
 | 
						|
 | 
						|
    - name: Create .xprofile for user
 | 
						|
      copy:
 | 
						|
        dest: /home/{{ target_user }}/.xprofile
 | 
						|
        content: |
 | 
						|
          # Start Xfce on login
 | 
						|
          startxfce4          
 | 
						|
        owner: "{{ target_user }}"
 | 
						|
        group: "{{ target_user }}"
 | 
						|
        mode: '0644'
 | 
						|
 | 
						|
    - name: Enable and start lightdm service
 | 
						|
      systemd:
 | 
						|
        name: lightdm
 | 
						|
        enabled: yes
 | 
						|
        state: started
 | 
						|
 | 
						|
    - name: Display success message
 | 
						|
      debug:
 | 
						|
        msg: "Xfce desktop environment and Chrome Dev have been configured for user {{ target_user }} on {{ inventory_hostname }}"
 | 
						|
 | 
						|
  handlers:
 | 
						|
    - name: restart lightdm
 | 
						|
      systemd:
 | 
						|
        name: lightdm
 | 
						|
        state: restarted |