diff --git a/acmebot/files/logrotate b/acmebot/files/logrotate
new file mode 100644
index 0000000000000000000000000000000000000000..e7f8a62169c173906f316920405cbbb516dc3560
--- /dev/null
+++ b/acmebot/files/logrotate
@@ -0,0 +1,8 @@
+/var/log/acmebot/*.log {
+        weekly
+        missingok
+        rotate 12
+        compress
+        delaycompress
+        notifempty
+}
diff --git a/acmebot/tasks/main.yml b/acmebot/tasks/main.yml
index 8297915948c72aff42eff0dd780dc8af03d95bf7..2e289508fe735bb2dcb7dbac873bb6b76118b5db 100644
--- a/acmebot/tasks/main.yml
+++ b/acmebot/tasks/main.yml
@@ -3,29 +3,30 @@
 - name: ensure requirements for acmebot are installed
   apt:
     name:
-      - python3-appdirs
-      - python3-pyparsing
-      - python3-packaging
-      - python3-openssl
-      - python3-dns
-      - python3-cryptography
-      - python3-asn1crypto
-      - python3-acme
-      - python3-yaml
+      - python3-virtualenv
+      - virtualenv
     state: present
 
-- name: get the acmebot repository
-  git:
-    repo: https://github.com/plinss/acmebot.git
-    dest: /opt/acmebot
+- name: check whether acmebot is still installed via git
+  stat:
+    path: /opt/acmebot/.git
+  register: file_status
+
+- name: remove the git repository if still exists
+  file:
+    path: /opt/acmebot
+    state: absent
+  when: file_status.stat.exists
+
+- name: setup a venv
+  pip:
+    name: acmebot
     version: "{{acmebot_version}}"
-    force: true
-  environment:
-    TMPDIR: /root/.ansible/tmp
+    virtualenv: /opt/acmebot/venv
 
 - name: add acmebot to path
   file:
-    src: /opt/acmebot/src/acmebot/acmebot.py
+    src: /opt/acmebot/venv/bin/acmebot
     dest: /usr/local/sbin/acmebot
     state: link
 
@@ -84,7 +85,9 @@
     state: absent
 
 - name: rotate acmebot logs
-  file:
-    src: /opt/acmebot/logrotate.d/acmebot
+  copy:
+    src: logrotate
     dest: /etc/logrotate.d/acmebot
-    state: link
+    mode: '0644'
+    owner: root
+    group: root