diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9bb1c3f3b48356822370e8439ad63cf9526dd679..d348cf21fedd13282ce91d9cb476deefea5a4367 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,17 +1,15 @@
 ---
 stages:
   - linting
-# Change pip's cache directory to be inside the project directory since we can
-# only cache local items.
-variables:
-  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
+
 cache:
   paths:
     - .cache
+
 ansible-lint:
   stage: linting
-  image: registry.gitlab.com/pipeline-components/ansible-lint:latest
-  before_script:
-    - pip3 install yamllint
+  image:
+    name: registry.gitlab.fachschaften.org/fsi-ansible/ci-docker-image:latest
+    entrypoint: [""]
   script:
-    - ansible-lint .
+    - ansible-lint -v --offline
diff --git a/handlers/main.yml b/handlers/main.yml
index 6951ed47d3e46bd867c5a62c876e3bbe37523a0b..6259a55da4e53ab795426801879821918e7bf7e9 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,3 +1,3 @@
 ---
 - name: reload netdata alarms
-  command: killall -USR2 netdata
+  ansible.builtin.command: killall -USR2 netdata
diff --git a/meta/main.yml b/meta/main.yml
index d2949b41c2d91d73d0525b16761bb765567b6855..fd355817d2028d5d9ce53e332f940c8cfd264b79 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -3,7 +3,7 @@ galaxy_info:
   author: Fachschaft Informatik, TU Dortmund
   description: Install and configure a netdata server
   license: MIT
-  min_ansible_version: 2.9
+  min_ansible_version: "2.9"
   platforms:
     - name: Ubuntu
       versions:
diff --git a/tasks/main.yml b/tasks/main.yml
index d29072bd53ddd590157efb69ca110b3d271c2fda..b623d2069b9dc13bc2eadc23c5241655bdfff58c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,6 +1,6 @@
 ---
 - name: Copy netdata cofig
-  template:
+  ansible.builtin.template:
     src: netdata.conf.j2
     dest: /etc/netdata/netdata.conf
     owner: root
@@ -9,7 +9,7 @@
   notify: restart netdata
 
 - name: Copy netdata stream config
-  template:
+  ansible.builtin.template:
     src: stream.conf.j2
     dest: /etc/netdata/stream.conf
     owner: root
@@ -19,7 +19,7 @@
   notify: restart netdata
 
 - name: Copy health override config
-  copy:
+  ansible.builtin.copy:
     src: "{{ item }}"
     dest: /etc/netdata/health.d/
     owner: root
@@ -31,7 +31,7 @@
   notify: reload netdata alarms
 
 - name: Copy last_collected alert config
-  template:
+  ansible.builtin.template:
     dest: "/etc/netdata/health.d/last_collected.conf"
     src: "last_collected.conf.j2"
     owner: root
@@ -40,12 +40,12 @@
   notify: reload netdata alarms
 
 - name: Enable netdata
-  service:
+  ansible.builtin.service:
     name: netdata
     enabled: true
 
 - name: Copy original health_alarm_notify.conf
-  copy:
+  ansible.builtin.copy:
     src: /usr/lib/netdata/conf.d/health_alarm_notify.conf
     remote_src: true
     dest: /etc/netdata/health_alarm_notify.conf
@@ -55,7 +55,7 @@
     mode: 0644
 
 - name: Set email sender
-  lineinfile:
+  ansible.builtin.lineinfile:
     path: /etc/netdata/health_alarm_notify.conf
     regexp: "^EMAIL_SENDER=\".*\""
     line: "EMAIL_SENDER=\"{{ netdata_from_email }}\""
@@ -63,7 +63,7 @@
   notify: reload netdata alarms
 
 - name: Set email recipient
-  lineinfile:
+  ansible.builtin.lineinfile:
     path: /etc/netdata/health_alarm_notify.conf
     regexp: "^DEFAULT_RECIPIENT_EMAIL=\".*\""
     line: "DEFAULT_RECIPIENT_EMAIL=\"{{ netdata_to_email }}\""