--- - name: Set local facts set_fact: gerboweb_cache: /var/cache/gerboweb - name: Copy render script template: src: render.sh.j2 dest: /usr/local/sbin/gerbolyze_render.sh mode: ug+x - name: Copy vector script template: src: vector.sh.j2 dest: /usr/local/sbin/gerbolyze_vector.sh mode: ug+x - name: Install packages into gerbolyze container shell: arch-chroot "{{gerboweb_root}}" pacman -Syu --noconfirm python3 python-numpy python-pip imagemagick unzip zip pugixml opencv pango cairo git python make clang rustup cargo pkgconf - name: Install rust shell: arch-chroot "{{gerboweb_root}}" rustup install stable - name: Setup rust shell: arch-chroot "{{gerboweb_root}}" rustup default stable - name: Setup usvg shell: arch-chroot "{{gerboweb_root}}" cargo install usvg - name: Setup pcb-tools-extension shell: arch-chroot "{{gerboweb_root}}" pip install git+https://git.jaseg.de/pcb-tools-extension.git - name: Workaround for cairoffi problem shell: arch-chroot "{{gerboweb_root}}" pip install -U --upgrade-strategy=eager wheel # TODO maybe install directly from local git checkout? - name: Install gerbolyze shell: arch-chroot "{{gerboweb_root}}" pip install -U --upgrade-strategy=eager gerbolyze - name: Copy webapp sources synchronize: src: checkouts/gerbolyze/gerboweb/ dest: /var/lib/gerboweb/ group: no owner: no - name: Create uwsgi worker user and group user: name: uwsgi-gerboweb create_home: no group: uwsgi password: '!' shell: /sbin/nologin system: yes - name: Template webapp config template: src: gerboweb.cfg.j2 dest: /var/lib/gerboweb/gerboweb_prod.cfg owner: uwsgi-gerboweb group: root mode: 0660 - name: Copy uwsgi config copy: src: uwsgi-gerboweb.ini dest: /etc/uwsgi.d/gerboweb.ini owner: uwsgi-gerboweb group: uwsgi mode: 0440 - name: Copy job processor systemd service config template: src: gerboweb-job-processor.service.j2 dest: /etc/systemd/system/gerboweb-job-processor.service - name: Enable uwsgi systemd socket systemd: daemon-reload: yes name: uwsgi-app@gerboweb.socket enabled: yes - name: Copy gerboweb cache dir tmpfiles.d config template: src: tmpfiles-gerboweb.conf.j2 dest: /etc/tmpfiles.d/gerboweb.conf owner: root group: root mode: 0644 register: tmpfiles_config - name: Kick systemd tmpfiles service to create cache dir command: systemd-tmpfiles --create when: tmpfiles_config is changed - name: Create job queue db file: path: "{{gerboweb_cache}}/job_queue.sqlite3" owner: root group: uwsgi mode: 0660 state: touch - name: Enable and launch job processor systemd: name: gerboweb-job-processor.service enabled: yes state: restarted