--- - name: Ensure boussole venv directory exists file: path: "{{ boussole_venv_dir }}" state: "directory" - name: Create boussole requirements.txt file copy: src: "requirements.txt" dest: "{{ boussole_venv_dir }}/requirements.txt" owner: "{{ app_username }}" group: "{{ app_username }}" mode: 0644 - name: Create boussole venv and install packages pip: virtualenv: "{{ boussole_venv_dir }}" virtualenv_command: python{{ python_version }} -m venv requirements: "{{ boussole_venv_dir }}/requirements.txt" - name: Create systemd service file template: src: boussole.service.jinja2 dest: /etc/systemd/system/boussole.service owner: root group: root mode: 0644 - name: Create directory for compiled CSS file: path: "{{ app_dir }}/static/css" state: directory owner: "{{ app_username }}" group: "{{ app_username }}" mode: 0755 - name: Start and enable boussole service systemd_service: name: boussole state: started enabled: true - name: Check if any compiled CSS files exist find: path: "{{ app_dir }}/static/css" patterns: - "*.css" register: compiled_css_files - name: Run boussole manually if no compiled CSS exists yet become_user: "{{ app_username }}" command: chdir: "{{ app_dir }}" cmd: "{{ boussole_venv_dir }}/bin/boussole compile --backend=yaml --config=boussole.yaml" environment: LC_ALL: C.UTF-8 LANG: C.UTF-8 when: compiled_css_files.matched == 0