diff options
Diffstat (limited to 'ansible')
| -rw-r--r-- | ansible/playbook.yml | 9 | ||||
| -rw-r--r-- | ansible/roles/actualbudget/tasks/main.yml | 49 | ||||
| -rw-r--r-- | ansible/roles/actualbudget/templates/openrc/actualbudget | 27 | ||||
| -rw-r--r-- | ansible/vars/actualbudget.yml | 2 | ||||
| -rw-r--r-- | ansible/vars/common.yml | 2 |
5 files changed, 88 insertions, 1 deletions
diff --git a/ansible/playbook.yml b/ansible/playbook.yml index ee0b39d..e821fbd 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -29,6 +29,15 @@ vars_files: - common.yml +- name: Install actualbudget + hosts: "{{ services.actualbudget.host }}" + become: true + roles: + - actualbudget + vars_files: + - common.yml + - actualbudget.yml + - name: Install etherpad hosts: "{{ services.etherpad.host }}" become: true diff --git a/ansible/roles/actualbudget/tasks/main.yml b/ansible/roles/actualbudget/tasks/main.yml new file mode 100644 index 0000000..92cad2f --- /dev/null +++ b/ansible/roles/actualbudget/tasks/main.yml @@ -0,0 +1,49 @@ +- name: Install Git, NodeJS and Yarn + community.general.apk: + name: + - git + - nodejs + - yarn + +- name: Checkout actualbudget source code + register: actualbudget_src + ansible.builtin.git: + repo: https://github.com/actualbudget/actual.git + dest: "{{ actualbudget_src_dir }}" + depth: 1 + version: v{{ actualbudget_version }} + +- name: Install actualbudget dependencies + register: actualbudget_dependencies + changed_when: "'Already up-to-date.' not in actualbudget_dependencies.stdout" + ansible.builtin.command: + chdir: "{{ actualbudget_src_dir }}" + cmd: yarn install + +- name: Install actualbudget service + register: actualbudget_service + ansible.builtin.template: + src: openrc/actualbudget + dest: /etc/init.d/actualbudget + mode: "755" + +- name: Restart actualbudget service and configure to start on boot + when: + actualbudget_src is changed + or actualbudget_service is changed + or actualbudget_dependencies is changed + ansible.builtin.service: + name: actualbudget + enabled: true + state: restarted + +- name: Start actualbudget service and configure to start on boot + when: + not ( + actualbudget_src is changed + or actualbudget_service is changed + or actualbudget_dependencies is changed ) + ansible.builtin.service: + name: actualbudget + enabled: true + state: started diff --git a/ansible/roles/actualbudget/templates/openrc/actualbudget b/ansible/roles/actualbudget/templates/openrc/actualbudget new file mode 100644 index 0000000..456e33e --- /dev/null +++ b/ansible/roles/actualbudget/templates/openrc/actualbudget @@ -0,0 +1,27 @@ +#!/sbin/openrc-run + +description="Run actualbudget budgeting server" + +start() +{ + ebegin "Starting actualbudget" + start-stop-daemon --start \ + --exec /usr/bin/yarn \ + --background \ + --chdir {{ actualbudget_src_dir }} \ + --stdout /var/log/actualbudget.log \ + --stderr /var/log/actualbudget.log \ + --make-pidfile \ + --pidfile /run/actualbudget.pid \ + -- start:server + eend $? +} + +stop() +{ + ebegin "Stopping actualbudget" + start-stop-daemon --stop \ + --exec /usr/bin/pnpx \ + --pidfile /run/actualbudget.pid + eend $? +} diff --git a/ansible/vars/actualbudget.yml b/ansible/vars/actualbudget.yml new file mode 100644 index 0000000..9da2f92 --- /dev/null +++ b/ansible/vars/actualbudget.yml @@ -0,0 +1,2 @@ +actualbudget_src_dir: /usr/share/src/actualbudget +actualbudget_version: 26.8.1 diff --git a/ansible/vars/common.yml b/ansible/vars/common.yml index b0d9030..a4db78f 100644 --- a/ansible/vars/common.yml +++ b/ansible/vars/common.yml @@ -3,7 +3,7 @@ joeacnet_src_dir: /usr/share/src/joeac.net services: actualbudget: port: 5006 - host: pi-broughton + host: blade-canongate etherpad: port: 9001 host: blade-canongate |
