--- - name: install schleuder-web dependencies ansible.builtin.apt: name: - bundler - libxml2-dev - zlib1g-dev - libsqlite3-dev - git - acl # only needed so ansible can become_user=schleuder-web - name: create schleuder-web user ansible.builtin.user: name: schleuder-web group: nogroup home: /var/lib/schleuder-web system: yes shell: /usr/sbin/nologin - name: gather service facts ansible.builtin.service_facts: - name: stop schleuder-web service ansible.builtin.service: name: schleuder-web state: stopped when: "'schleuder-web.service' in ansible_facts.services" - name: clone schleuder-web git repo become: yes become_user: schleuder-web ansible.builtin.command: # git module would reset working directory cmd: git clone https://0xacab.org/schleuder/schleuder-web /var/lib/schleuder-web/schleuder-web # noqa command-instead-of-module creates: /var/lib/schleuder-web/schleuder-web - name: fetch schleuder-web upstream become: yes become_user: schleuder-web ansible.builtin.command: cmd: git fetch origin # noqa command-instead-of-module chdir: /var/lib/schleuder-web/schleuder-web changed_when: yes - name: checkout requested schleuder-web version become: yes become_user: schleuder-web ansible.builtin.command: cmd: git checkout "{{ schleuder_web_commitish }}" # noqa command-instead-of-module chdir: /var/lib/schleuder-web/schleuder-web changed_when: yes - name: render /var/lib/schleuder-web/schleuder-web/config/schleuder-web.yml ansible.builtin.template: src: var/lib/schleuder-web/schleuder-web/config/schleuder-web.yml.j2 dest: /var/lib/schleuder-web/schleuder-web/config/schleuder-web.yml owner: schleuder-web group: root mode: 0600 notify: systemctl restart schleuder-web - name: render /var/lib/schleuder-web/schleuder-web/config/database.yml ansible.builtin.template: src: var/lib/schleuder-web/schleuder-web/config/database.yml.j2 dest: /var/lib/schleuder-web/schleuder-web/config/database.yml owner: schleuder-web group: nogroup mode: 0644 - name: get schleuder api tls fingerprint community.crypto.x509_certificate_info: path: /etc/schleuder/schleuder-certificate.pem register: schleuder_register_apicert_info - name: render /etc/default/schleuder-web ansible.builtin.template: src: etc/default/schleuder-web.j2 dest: /etc/default/schleuder-web owner: root group: root mode: 0600 vars: tls_fingerprint: "{{ schleuder_register_apicert_info.fingerprints.sha256 | replace(':', '') }}" notify: systemctl restart schleuder-web - name: render systemd service unit ansible.builtin.template: src: etc/systemd/system/schleuder-web.service.j2 dest: /etc/systemd/system/schleuder-web.service owner: root group: root mode: 0644 notify: systemctl daemon-reload - name: run bundle install ... this may take a few minutes become: yes become_user: schleuder-web ansible.builtin.command: cmd: /usr/bin/bundle install --path /var/lib/schleuder-web/.gem --without deployment chdir: /var/lib/schleuder-web/schleuder-web changed_when: yes - name: run bundle db setup become: yes become_user: schleuder-web ansible.builtin.command: cmd: /usr/bin/bundle exec rake db:setup chdir: /var/lib/schleuder-web/schleuder-web creates: /var/lib/schleuder-web/schleuder-web.sqlite3 environment: RAILS_ENV: production - name: flush systemd daemon-reload ansible.builtin.meta: flush_handlers - name: start and enable schleuder-web ansible.builtin.service: name: schleuder-web state: started enabled: true