diff --git a/deploy/ansible/roles/wppackages/handlers/main.yml b/deploy/ansible/roles/wppackages/handlers/main.yml index f958815..f0454bf 100644 --- a/deploy/ansible/roles/wppackages/handlers/main.yml +++ b/deploy/ansible/roles/wppackages/handlers/main.yml @@ -3,6 +3,11 @@ systemd: daemon_reload: yes +- name: Restart litestream + service: + name: litestream + state: restarted + - name: Restart wppackages service: name: wppackages diff --git a/deploy/ansible/roles/wppackages/tasks/main.yml b/deploy/ansible/roles/wppackages/tasks/main.yml index 51a855e..4591f0b 100644 --- a/deploy/ansible/roles/wppackages/tasks/main.yml +++ b/deploy/ansible/roles/wppackages/tasks/main.yml @@ -7,12 +7,30 @@ group: www-data mode: "0640" +- name: Stop and disable legacy wppackages socket unit + service: + name: wppackages.socket + state: stopped + enabled: no + failed_when: false + - name: Remove legacy wppackages socket unit file: path: /etc/systemd/system/wppackages.socket state: absent notify: Reload systemd +- name: Deploy litestream service + template: + src: litestream.service.j2 + dest: /etc/systemd/system/litestream.service + owner: root + group: root + mode: "0644" + notify: + - Reload systemd + - Restart litestream + - name: Deploy wppackages service template: src: wppackages.service.j2 @@ -20,7 +38,9 @@ owner: root group: root mode: "0644" - notify: Reload systemd + notify: + - Reload systemd + - Restart wppackages - name: Deploy pipeline timer template: @@ -140,6 +160,12 @@ - name: Flush handlers meta: flush_handlers +- name: Enable and start litestream service + service: + name: litestream + state: started + enabled: yes + - name: Enable and start wppackages service service: name: wppackages diff --git a/deploy/ansible/roles/wppackages/templates/litestream.service.j2 b/deploy/ansible/roles/wppackages/templates/litestream.service.j2 new file mode 100644 index 0000000..9434a5f --- /dev/null +++ b/deploy/ansible/roles/wppackages/templates/litestream.service.j2 @@ -0,0 +1,16 @@ +[Unit] +Description=Litestream replication for WP Packages +After=network.target +Before=wppackages.service + +[Service] +Type=simple +User=deploy +Group=www-data +ExecStart=/usr/bin/litestream replicate -config {{ app_root }}/shared/litestream.yml +Restart=always +RestartSec=1s +EnvironmentFile={{ app_root }}/shared/.env + +[Install] +WantedBy=multi-user.target diff --git a/deploy/ansible/roles/wppackages/templates/wppackages.service.j2 b/deploy/ansible/roles/wppackages/templates/wppackages.service.j2 index 771dac0..8fa8cbf 100644 --- a/deploy/ansible/roles/wppackages/templates/wppackages.service.j2 +++ b/deploy/ansible/roles/wppackages/templates/wppackages.service.j2 @@ -1,13 +1,14 @@ [Unit] Description=WP Packages -After=network.target +After=network.target litestream.service +Requires=litestream.service [Service] Type=simple User=deploy Group=www-data WorkingDirectory={{ app_root }}/current -ExecStart=/usr/bin/litestream replicate -config {{ app_root }}/shared/litestream.yml -exec "{{ app_root }}/current/{{ go_binary_name }} serve --db {{ db_path }}" +ExecStart={{ app_root }}/current/{{ go_binary_name }} serve --db {{ db_path }} Restart=always RestartSec=1s StandardOutput=append:{{ app_root }}/shared/storage/logs/wppackages.log