diff --git a/.lint/ansible-lint.conf b/.lint/ansible-lint.conf
index 924d005d73b3ffee31c026aec94d6df69da25c79..084f3e402ebed02f5fe47cf93a8a17b25d754659 100644
--- a/.lint/ansible-lint.conf
+++ b/.lint/ansible-lint.conf
@@ -13,5 +13,6 @@ skip_list:
   - name[casing]              # Skip the rule dictating that all task name should begin with uppercase
   - template-instead-of-copy  # Skip forcing the use of templates
   - name[template]            # Skip forcing to use jinja var at the end of a task name
+  - fqcn[action]              # Skip full FQCN for ansible actions
 
 ...
diff --git a/playbooks/mediacache/deploy-minimal.yml b/playbooks/mediacache/deploy-minimal.yml
index 0227b8ab8b9ba13b9bcbe2fd8e26bfdc80da688b..7f25e0416e2e90f7a467bf4e4c6411eececb749b 100644
--- a/playbooks/mediacache/deploy-minimal.yml
+++ b/playbooks/mediacache/deploy-minimal.yml
@@ -13,7 +13,7 @@
       notify: restart nginx on mediaservers
       ansible.builtin.lineinfile:
         path: /etc/nginx/conf.d/mediaserver-securelink.conf
-        line: "{{'\t'}}{{ securelink_ip }} 1;"  # noqa no-tabs jinja[spacing]
+        line: "{{'\t'}}{{ securelink_ip }} 1;" # noqa no-tabs jinja[spacing]
         insertafter: ^geo
       delegate_to: "{{ item }}"
       delegate_facts: true
diff --git a/roles/mediaserver/tasks/main.yml b/roles/mediaserver/tasks/main.yml
index 22518d385ebe4ef70d153281abe1ba0bceca3def..08990cb04fecdf2698deb4a9a6e92088cc853636 100644
--- a/roles/mediaserver/tasks/main.yml
+++ b/roles/mediaserver/tasks/main.yml
@@ -52,19 +52,17 @@
 
 - name: create instances
   loop: "{{ server_instances }}"
-  environment:
-    MS_ID: "{{ item.ms_id }}"
-    MS_SERVER_NAME: "{{ item.ms_server_name }}"
-    MS_API_KEY: "{{ item.ms_api_key }}"
-    CM_SERVER_NAME: "{{ item.cm_server_name }}"
-    MS_SUPERUSER_PWD: "{{ item.ms_superuser_pwd }}"
-    MS_ADMIN_PWD: "{{ item.ms_admin_pwd }}"
-    DB_HOST: "{{ envsetup_db_host | d('127.0.0.1') }}"
-    DB_PORT: "{{ envsetup_db_port | d('5432') }}"
-    DB_PG_ROOT_PWD: "{{ envsetup_db_pg_root_pwd | d('') }}"
-    MS_SECRET: "{{ envsetup_ms_secret | d('') }}"
   ansible.builtin.command:
-    cmd: mscontroller.py add -u {{ item.name }}
+    cmd: >
+      mscontroller.py add -u '{{ item.name }}' -t '{
+        "id": "{{ item.ms_id }}",
+        "domain": "{{ item.ms_server_name }}",
+        "api_key": "{{ item.ms_api_key }}",
+        "secret": "{{ envsetup_ms_secret | d("") }}",
+        "superuser_pwd": "{{ item.ms_superuser_pwd }}",
+        "admin_pwd": "{{ item.ms_admin_pwd }}",
+        "skyreach_url": "{{ item.cm_server_name }}"
+      }'
     creates: /etc/nginx/sites-available/mediaserver-{{ item.name }}.conf
   throttle: 1
 
diff --git a/roles/mediavault/tasks/main.yml b/roles/mediavault/tasks/main.yml
index fcb7fe4ded173077f29cbb99e38370472f0ea558..1c7a350c9fa845a5c1f35907e52d137443544a7f 100644
--- a/roles/mediavault/tasks/main.yml
+++ b/roles/mediavault/tasks/main.yml
@@ -14,7 +14,8 @@
     ssh_key_file: .ssh/id_ed25519
 
 # MAILER
-- include_tasks: mailer.yml
+- name: MAILER
+  ansible.builtin.include_tasks: mailer.yml
 
 # FIREWALL
 - name: firewall
diff --git a/roles/mirismanager/tasks/main.yml b/roles/mirismanager/tasks/main.yml
index 9e8c9f5e9aaebcb6315db39bfebf7096926ccec5..6ff87d4209d4fcbabe9cac2910e097099341c392 100644
--- a/roles/mirismanager/tasks/main.yml
+++ b/roles/mirismanager/tasks/main.yml
@@ -14,8 +14,6 @@
     state: started
 
 - name: mirismanager install
-  environment:
-    CM_SERVER_NAME: "{{ manager_hostname }}"
   ansible.builtin.apt:
     force_apt_get: true
     install_recommends: false
diff --git a/roles/munin/msmonitor/tasks/main.yml b/roles/munin/msmonitor/tasks/main.yml
index c0daa5ad17ff182ddab2152979c7d697ac151522..a131f2fd1027ee79ad8c148375042d2c3c641fad 100644
--- a/roles/munin/msmonitor/tasks/main.yml
+++ b/roles/munin/msmonitor/tasks/main.yml
@@ -1,11 +1,5 @@
 ---
 - name: install ubicast msmonitor
-  environment:
-    MONITOR_SERVER_NAME: "{{ monitor_hostname }}"
-    MONITOR_SHELL_PWD: "{{ monitor_shell_pwd | password_hash('sha512', 'monitor') }}"
-    MONITOR_ADMIN_PWD: "{{ monitor_admin_pwd | password_hash('sha512', 'monitor') }}"
-    MONITOR_SUPERUSER_PWD: "{{ monitor_superuser_pwd }}"
-    SSH_MAINTENANCE_PORT: "{{ ssh_maintenance_port }}"
   ansible.builtin.apt:
     force_apt_get: true
     install_recommends: false
diff --git a/roles/sysconfig/tasks/main.yml b/roles/sysconfig/tasks/main.yml
index 59f685095165bf8e482ab9f435077d035ef8064b..195458713475d1066ed6f62cb81814eee833cd01 100644
--- a/roles/sysconfig/tasks/main.yml
+++ b/roles/sysconfig/tasks/main.yml
@@ -1,5 +1,7 @@
 ---
-- include_tasks: repos.yml
+
+- name: REPOS
+  ansible.builtin.include_tasks: repos.yml
 
 # Upgrade already installed packages to latest version and clean system
 
@@ -121,8 +123,11 @@
   ansible.builtin.include_role:
     name: ferm-configure
 
-- include_tasks: logs.yml
+- name: LOGS
+  ansible.builtin.include_tasks: logs.yml
 
-- include_tasks: locale.yml
+- name: LOCALE
+  ansible.builtin.include_tasks: locale.yml
 
-- include_tasks: ntp.yml
+- name: NTP
+  ansible.builtin.include_tasks: ntp.yml