diff --git a/tasks/main.yml b/tasks/main.yml
index f410018437a1b4088103c0dafad9630a370f147c..d20fcad29d13eda7c47673ed06b24fe1fd1f8455 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,2 +1,46 @@
 ---
 # tasks file for ansible-mysql
+
+- name: Preseed
+  debconf:
+    name: mysql-server-5.5
+    question: '{{ item }}'
+    vtype: password
+    value: '{{ mysql_root_password }}'
+  with_items:
+    - mysql-server/root_password
+    - mysql-server/root_password_again
+
+- name: apt install
+  apt:
+    name: '{{ item }}'
+    state: present
+    update_cache: yes
+    cache_valid_time: 3600
+  with_items:
+    - mysql-server-5.5
+    - mysql-client-5.5
+    - python-mysqldb
+    - cron
+
+- name: Create database
+  mysql_db:
+    collation: utf8_general_ci
+    encoding: utf8
+    name: '{{ mysql_database }}'
+    state: present
+
+- name: Create account
+  mysql_user:
+    name: '{{ mysql_user }}'
+    password: '{{ mysql_password }}'
+    priv: '{{ mysql_database }}.*:SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX'
+    state: present
+
+- name: Add daily backup job
+  template:
+    src: mysql.j2
+    dest: '/etc/cron.daily/mysql_{{ mysql_database }}'
+    owner: root
+    group: root
+    mode: '0700'
diff --git a/templates/mysql.j2 b/templates/mysql.j2
new file mode 100644
index 0000000000000000000000000000000000000000..2867b901835fb732f590783d52acb2beda04c8d2
--- /dev/null
+++ b/templates/mysql.j2
@@ -0,0 +1,2 @@
+#!/bin/sh -e
+mysqldump --user root --password {{ mysql_root_password }} --single-transaction --force {{ mysql_database }} > /var/backups/mysql_{{ mysql_database }}.sql