diff --git a/s3fs/tasks/main.yml b/s3fs/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..511e797824c555bd069123d063e1d6222fb0efa9
--- /dev/null
+++ b/s3fs/tasks/main.yml
@@ -0,0 +1,22 @@
+---
+
+- name: Install s3fs
+  apt:
+    name: s3fs
+
+- name: Configure s3fs credentials
+  template:
+    src: passwd-s3fs.j2
+    dest: /etc/passwd-s3fs
+    mode: "0640"
+    owner: root
+    group: root
+
+- name: Configure s3fs mountpoints
+  mount:
+    fstype: fuse.s3fs
+    opts: "{{ item.opts|join(',') }}"
+    path: "/s3fs/{{ item.mountpoint|default(item.bucket) }}"
+    src: "{{ item.bucket }}"
+    state: mounted
+  loop: "{{ s3fs }}"
diff --git a/s3fs/templates/passwd-s3fs.j2 b/s3fs/templates/passwd-s3fs.j2
new file mode 100644
index 0000000000000000000000000000000000000000..89a186ec9b1ccf5ee99cccd876e0d1e10a8821f6
--- /dev/null
+++ b/s3fs/templates/passwd-s3fs.j2
@@ -0,0 +1,3 @@
+{% for i in s3fs -%}
+{{ i.bucket }}:{{ i.accesskey }}:{{ i.secret }}
+{% endfor %}