121 lines
3.6 KiB
YAML
121 lines
3.6 KiB
YAML
---
|
|
|
|
- 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: true
|
|
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: true
|
|
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: true
|
|
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: true
|
|
|
|
- name: Checkout requested schleuder-web version
|
|
become: true
|
|
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: true
|
|
|
|
- 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: true
|
|
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: true
|
|
|
|
- name: Run bundle db setup
|
|
become: true
|
|
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
|