diff --git a/defaults/main.yml b/defaults/main.yml
index aac7d0e0c08bf42cd91cff2fbc117f7ee94a9d04..ccb416efa4d8a0e1c7394c34428648df4026031a 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,6 +1,10 @@
 ---
 eth_log_alerting_binary_url: "https://git.ethitter.com/debian/eth-log-alerting/uploads/73fb61dcec9e953d24f1180d03959e4c/eth-log-alerting_linux_amd64"
 eth_log_alerting_binary_dest: /usr/local/bin/eth-log-alerting
+eth_log_alerting_init_url: "https://git.ethitter.com/debian/eth-log-alerting/raw/v0.0.1/init.sh"
+eth_log_alerting_init_dest: /etc/init.d/eth-log-alerting
+eth_log_alerting_init_defaults: /etc/default/eth-log-alerting
+
 eth_log_alerting_config_dest: /etc/eth-log-alerting.json
 
 eth_log_alerting_debug_dest: "os.Stdout"
diff --git a/tasks/install.yml b/tasks/install.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6b78c3d76df73836a8e61fd651b5d15753e78200
--- /dev/null
+++ b/tasks/install.yml
@@ -0,0 +1,16 @@
+---
+- name: Download and install binary
+  get_url:
+    url: "{{ eth_log_alerting_binary_url }}"
+    dest: "{{ eth_log_alerting_binary_dest }}"
+    mode: 0755
+    force: yes
+
+- name: Set configuration
+  template:
+    src: templates/config.j2
+    dest: "{{ eth_log_alerting_config_dest }}"
+    force: yes
+    owner: root
+    group: root
+    mode: 0400
diff --git a/tasks/logrotate.yml b/tasks/logrotate.yml
new file mode 100644
index 0000000000000000000000000000000000000000..41098fdae850ef974069d91cf4ccd7ca9f1f9f2b
--- /dev/null
+++ b/tasks/logrotate.yml
@@ -0,0 +1,16 @@
+---
+- name: Configure logrotate
+  template:
+    src: templates/logrotate.j2
+    dest: /etc/logrotate.d/eth-log-alerting
+    force: yes
+    owner: root
+    group: root
+    mode: 0644
+  when: eth_log_alerting_debug_dest != "os.Stdout"
+
+- name: Remove logrotate configuration
+  file:
+    dest: /etc/logrotate.d/eth-log-alerting
+    state: absent
+  when: eth_log_alerting_debug_dest == "os.Stdout"
diff --git a/tasks/main.yml b/tasks/main.yml
index a3008f694b239d567fec6f1991e8ed7869b8b8bd..dda2817cede1b9cede3f526f96c8ab61ee07e96b 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,32 +1,4 @@
 ---
-- name: Download and install binary
-  get_url:
-    url: "{{ eth_log_alerting_binary_url }}"
-    dest: "{{ eth_log_alerting_binary_dest }}"
-    mode: 0755
-    force: yes
-
-- name: Set configuration
-  template:
-    src: templates/config.j2
-    dest: "{{ eth_log_alerting_config_dest }}"
-    force: yes
-    owner: root
-    group: root
-    mode: 0400
-
-- name: Configure logrotate
-  template:
-    src: templates/logrotate.j2
-    dest: /etc/logrotate.d/eth-log-alerting
-    force: yes
-    owner: root
-    group: root
-    mode: 0644
-  when: eth_log_alerting_debug_dest != "os.Stdout"
-
-- name: Remove logrotate configuration
-  file:
-    dest: /etc/logrotate.d/eth-log-alerting
-    state: absent
-  when: eth_log_alerting_debug_dest == "os.Stdout"
+- include: install.yml
+- include: service.yml
+- include: logrotate.yml
diff --git a/tasks/service.yml b/tasks/service.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9342f1ce78c9ccd33adc29eb84572cd5bfcb7d6a
--- /dev/null
+++ b/tasks/service.yml
@@ -0,0 +1,29 @@
+---
+- name: Install service
+  get_url:
+    url: "{{ eth_log_alerting_init_url }}"
+    dest: "{{ eth_log_alerting_init_dest }}"
+    mode: 0755
+    owner: root
+    group: root
+    force: yes
+
+- name: Configure service
+  lineinfile:
+    dest: "{{ eth_log_alerting_init_defaults }}"
+    line: "{{ item }}"
+    mode: 0644
+    owner: root
+    group: root
+    state: present
+    create: yes
+  with_items:
+    - 'DAEMON="{{ eth_log_alerting_binary_dest }}"'
+    - 'DAEMON_ARGS="-config {{ eth_log_alerting_config_dest }}"'
+    - 'USER="root"'
+
+- name: Ensure service is enabled and started
+  service:
+    name: eth-log-alerting
+    enabled: yes
+    state: started