diff --git a/alertmanager/handlers/main.yml b/alertmanager/handlers/main.yml
index 94a8c21a636aa943a469d880eb671a209bc09a1a..89ae186544ce0c1b2164208d9cf8a2f212a86219 100644
--- a/alertmanager/handlers/main.yml
+++ b/alertmanager/handlers/main.yml
@@ -1,11 +1,25 @@
 ---
 
-- name: Restart alertmanager
+- name: Reload systemd
+  systemd:
+    daemon_reload: true
+
+- name: Restart prometheus-alertmanager
   systemd:
     name: prometheus-alertmanager.service
     state: restarted
 
-- name: Reload alertmanager
+- name: Reload prometheus-alertmanager
   systemd:
     name: prometheus-alertmanager.service
     state: reloaded
+
+- name: Restart alertmanager
+  systemd:
+    name: alertmanager.service
+    state: restarted
+
+- name: Reload alertmanager
+  systemd:
+    name: alertmanager.service
+    state: reloaded
diff --git a/alertmanager/tasks/debian.yml b/alertmanager/tasks/debian.yml
new file mode 100644
index 0000000000000000000000000000000000000000..155fd4b8b72169e0af9716add872dc0ebe10373d
--- /dev/null
+++ b/alertmanager/tasks/debian.yml
@@ -0,0 +1,24 @@
+---
+
+- name: Install alertmanager
+  apt:
+    name: prometheus-alertmanager
+    state: present
+
+- name: Configure alertmanager command arguments
+  template:
+    src: default.j2
+    dest: /etc/default/prometheus-alertmanager
+  notify:
+    - Restart prometheus-alertmanager
+  tags:
+    - config
+
+- name: Configure alertmanager
+  template:
+    src: alertmanager.yml.j2
+    dest: /etc/prometheus/alertmanager.yml
+  notify:
+    - Reload prometheus-alertmanager
+  tags:
+    - config
diff --git a/alertmanager/tasks/gentoo.yml b/alertmanager/tasks/gentoo.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cc10dc7f566aa8b16431d62d6bed09dd21c53e9b
--- /dev/null
+++ b/alertmanager/tasks/gentoo.yml
@@ -0,0 +1,33 @@
+---
+
+- name: Install alertmanager
+  portage:
+    package:
+      - app-metrics/alertmanager
+    state: present
+
+- name: Create systemd override directory
+  file:
+    path: /etc/systemd/system/alertmanager.service.d
+    state: directory
+
+- name: Configure alertmanager command arguments
+  template:
+    src: override.conf.j2
+    dest: /etc/systemd/system/alertmanager.service.d/override.conf
+  notify:
+    - Reload systemd
+    - Restart alertmanager
+
+- name: Configure alertmanager
+  template:
+    src: alertmanager.yml.j2
+    dest: /etc/alertmanager/config.yml
+  notify:
+    - Reload alertmanager
+
+- name: Enable and start alertmanager
+  systemd:
+    name: alertmanager.service
+    state: started
+    enabled: true
diff --git a/alertmanager/tasks/main.yml b/alertmanager/tasks/main.yml
index 71f61859f31c7ac77e740124360203f2b989899c..91f8b3052b82946730b77f96e0689dc287d3f8f9 100644
--- a/alertmanager/tasks/main.yml
+++ b/alertmanager/tasks/main.yml
@@ -1,24 +1,3 @@
 ---
 
-- name: Install alertmanager
-  apt:
-    name: prometheus-alertmanager
-    state: present
-
-- name: Configure alertmanager command arguments
-  template:
-    src: default.j2
-    dest: /etc/default/prometheus-alertmanager
-  notify:
-    - Restart alertmanager
-  tags:
-    - config
-
-- name: Configure alertmanager
-  template:
-    src: alertmanager.yml.j2
-    dest: /etc/prometheus/alertmanager.yml
-  notify:
-    - Reload alertmanager
-  tags:
-    - config
+- include_tasks: "{{ ansible_distribution|lower }}.yml"
diff --git a/alertmanager/templates/override.conf.j2 b/alertmanager/templates/override.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..a44f71d193744ce28758700558475686754656d5
--- /dev/null
+++ b/alertmanager/templates/override.conf.j2
@@ -0,0 +1,4 @@
+{# -*- systemd -*- #}
+[Service]
+ExecStart=
+ExecStart=/usr/bin/alertmanager {{ prometheus_alertmanager_args }}