--- - name: Install packages for Web UI apt: state: present name: # main packages - chromium # Webbrowser - i3 # Window Manager - lightdm # Login Manager with Autologin # tools - xdotool # simulate keyboard inputs on X11 - name: Create autologin group for LightDM group: state: present name: autologin - name: Configure kiosk user user: state: present name: "{{ kiosk_user }}" home: "{{ kiosk_user_directory }}" create_home: yes move_home: yes shell: /usr/bin/bash groups: - audio - autologin - video append: yes password: "{{ kiosk_user_pass | password_hash('sha512', LOCAL_SALT) }}" update_password: on_create - name: Configure lightdm template: src: "{{ item }}" dest: "{{ global_lightdm_configuration_directory }}/{{ item }}" owner: root group: root mode: u=rw,g=r,o=r loop: - lightdm.conf - lightdm-gtk-greeter.conf - name: Store autostart script template: src: autostart.sh dest: "{{ autostart_script }}" owner: root group: root mode: u=rwx,g=rx,o=rx - name: Create configuration directories for kiosk user file: state: directory path: "{{ kiosk_user_directory }}/{{ item }}" owner: root group: "{{ kiosk_user }}" mode: u=rwx,g=rx,o= loop: - .config/i3 - name: Configure i3 for kiosk user template: src: "i3.cfg" dest: "{{ kiosk_user_directory }}/.config/i3/config" owner: root group: "{{ kiosk_user }}" mode: u=rw,g=r,o= - name: Create policy directory for chromium globally file: state: directory path: "{{ global_chromium_managed_policies_file | dirname }}" owner: root group: root mode: u=rwx,g=rx,o=rx - name: Configure policies for chromium globally copy: content: "{{ chromium_policies | to_nice_json }}" dest: "{{ chromium_policies_file }}" owner: root group: root mode: u=rw,g=r,o=r