diff --git a/README.rst b/README.rst
index 34a183ad58fbe7885dd7b5b86002a93961f7abbe..ba87a76b29731d4f483332920ebe17ee27d38e4a 100644
--- a/README.rst
+++ b/README.rst
@@ -1,9 +1,7 @@
-Example
-#######
+Syslog forwarding
+#################
 
-An (empty) example Ansible role complete with working tests out of the box. For
-more information read the `blog post
-<https://www.shore.co.il/blog/ansible-example-role/>`_.
+Configure syslog forwarding (syslogd on OpenBSD, rsyslog on Debian).
 
 Requirements
 ------------
diff --git a/defaults/main.yml b/defaults/main.yml
index 25ca86f325b131ae189e74bc108bcc2bc403501e..4dad2676948cb2e9e1d382246aca307f013cc8be 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,2 +1,4 @@
 ---
-# defaults file for ansible-role-example
+# defaults file for ansible-role-syslog-forward
+
+syslog_server:
diff --git a/handlers/main.yml b/handlers/main.yml
index 1d74a03c15eb4a405872128a9f81f91ecf354f2e..73be0c79cbf72a09737d7c513434d044648c7778 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,2 +1,12 @@
 ---
-# handlers file for ansible-role-example
+# handlers file for ansible-role-syslog-forward
+
+- name: Restart rsyslog
+  service:
+    name: rsyslog
+    state: restarted
+
+- name: Restart syslogd
+  service:
+    name: syslogd
+    state: restarted
diff --git a/meta/main.yml b/meta/main.yml
index e22f4e836a3c46a95e906533a0fd5976a885775c..12adf7fa46311267012c28120526c33f37216d75 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -1,6 +1,6 @@
 galaxy_info:
   author: Nimrod Adar
-  description: An example Ansible role
+  description: Configure syslog forwarding.
   company: Shore technologies
   license: MIT
   min_ansible_version: 2.0
@@ -8,8 +8,8 @@ galaxy_info:
   - name: OpenBSD
     versions:
     - 5.9
-  galaxy_tags: [ ansible ]
-dependencies:
-    - src: https://www.shore.co.il/git/ansible-role-openbsd-bootstrap
-      scm: git
-      name: bootstrap
+  - name: Debian
+    versions:
+    - jessie
+  galaxy_tags: [ syslog ]
+dependencies: []
diff --git a/molecule.yml b/molecule.yml
index 0d86e79f8d760dd0d6acf0a8d89cea909dec37a5..5b65f4fc0b5b6761a77ffb3f4974b1f59e25bb02 100644
--- a/molecule.yml
+++ b/molecule.yml
@@ -15,8 +15,10 @@ vagrant:
   platforms:
   - name: openbsd
     box: kaorimatz/openbsd-5.9-amd64
+  - name: debian
+    box: debian/jessie64
   instances:
-  - name: ansible-role-example
+  - name: ansible-role-syslog-forward
     options:
         append_platform_to_hostname: yes
   raw_config_args:
diff --git a/tasks/main.yml b/tasks/main.yml
index 066751cb957b869527eef43b28af7dbd81ba96d2..1076b8ba2247e0188977f1d5a00cd484930291d6 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,7 +1,35 @@
 ---
-# tasks file for ansible-role-example
+# tasks file for ansible-role-syslog-forward
 
-- assert:
-    that:
-        - ansible_os_family == 'OpenBSD'
-        - ansible_distribution_release == '5.9'
+- name: Assert
+  assert:
+    that: ansible_os_family in [ 'Debian', 'OpenBSD' ]
+
+- name: APT install rsyslog
+  when: ansible_os_family == 'Debian'
+  apt:
+    name: rsyslog-gnutls
+    state: present
+    update_cache: yes
+    cache_valid_time: 3600
+
+- name: Configure rsyslog forwarding
+  when: ansible_os_family == 'Debian'
+  template:
+    src: forwarding.conf.j2
+    dest: /etc/rsyslog.d/forwarding.conf
+    owner: root
+    group: root
+    mode: 0o0644
+  notify:
+  - Restart rsyslog
+
+- name: Configure syslogd forwarding
+  when: ansible_os_family == 'OpenBSD'
+  lineinfile:
+    dest: /etc/syslog.conf
+    line: '*.* @tls://{{ syslog_server}}'
+    regexp: '^\*.\* '
+    state: present
+  notify:
+  - Restart syslogd
diff --git a/templates/forwarding.conf.j2 b/templates/forwarding.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..9a4062e8ca63b610385401399d725cf351525d59
--- /dev/null
+++ b/templates/forwarding.conf.j2
@@ -0,0 +1,11 @@
+{#
+$DefaultNetstreamDriver gtls
+$DefaultNetstreamDriverCAFile {{ tls_ca_cert_path }}
+$DefaultNetstreamDriverCertFile {{ tls_cert_path }}
+$DefaultNetstreamDriverKeyFile {{ tls_key_path }}
+$ActionSendStreamDriverAuthMode x509/name
+#}
+
+$ActionSendStreamDriverPermittedPeer {{ syslog_server }}
+$ActionSendStreamDriverMode 1
+*.* @@{{ syslog_server }}
diff --git a/tests/test_syslog_forward.py b/tests/test_syslog_forward.py
index 1e0f862fe28bac72ab9779edac34ae1a995444a8..3338fdc687fa8b7bf43278d48d6aeb4022343755 100644
--- a/tests/test_syslog_forward.py
+++ b/tests/test_syslog_forward.py
@@ -1,5 +1,6 @@
 def test_syslog_forward(Service, SystemInfo):
     if SystemInfo.type == 'openbsd':
         assert Service('syslogd').is_running
-    if SystemInfo.type == 'linux' and SystemInfo.distribution == 'debian'
+    elif SystemInfo.type == 'linux' and SystemInfo.distribution in ['debian',
+                                                                    'ubuntu']:
         assert Service('rsyslog').is_running
diff --git a/vars/main.yml b/vars/main.yml
index 241750308ae0dc5fd6fc0d21108c47746696d808..86e77590a203f10b5a66f50610b5944c267bcadf 100644
--- a/vars/main.yml
+++ b/vars/main.yml
@@ -1,2 +1,2 @@
 ---
-# vars file for ansible-role-example
+# vars file for ansible-role-syslog-forward