diff --git a/ansible/roles/mariadb/tasks/recover_cluster.yml b/ansible/roles/mariadb/tasks/recover_cluster.yml
index 2ae6ca0d96b9beedc06af9171a0492404146bd15..fc077706fb0ffef906fb16bbafeb59871e2f1cce 100644
--- a/ansible/roles/mariadb/tasks/recover_cluster.yml
+++ b/ansible/roles/mariadb/tasks/recover_cluster.yml
@@ -47,7 +47,7 @@
 
     - name: Copying MariaDB log file to /tmp
       become: true
-      shell: "docker cp {{ mariadb_service.container_name }}:/var/log/kolla/mariadb/mariadb.log /tmp/mariadb_tmp.log"
+      command: "docker cp {{ mariadb_service.container_name }}:/var/log/kolla/mariadb/mariadb.log /tmp/mariadb_tmp.log"
 
     # Look for sequence number in logs. Format is:
     # WSREP: Recovered position: <UUID>:<seqno>.
diff --git a/ansible/roles/prechecks/tasks/user_checks.yml b/ansible/roles/prechecks/tasks/user_checks.yml
index 8806b2d208336f09a3784edf9b9d7f8d26115297..82f273e57ea7b7e68762b591847049370eb18eb7 100644
--- a/ansible/roles/prechecks/tasks/user_checks.yml
+++ b/ansible/roles/prechecks/tasks/user_checks.yml
@@ -12,7 +12,7 @@
 
 # NOTE(duonghq): it's only a basic check, should be refined later
 - name: Check if ansible user can do passwordless sudo
-  shell: "true"
+  command: "true"
   become: yes
   register: result
   failed_when: result is failed
diff --git a/ansible/roles/rabbitmq/handlers/main.yml b/ansible/roles/rabbitmq/handlers/main.yml
index fab1c5a0b89daf075fcf57a51e794158f4531a3f..515126e0bf5be3583fbf766878237a2efdef12c8 100644
--- a/ansible/roles/rabbitmq/handlers/main.yml
+++ b/ansible/roles/rabbitmq/handlers/main.yml
@@ -23,7 +23,7 @@
     service_name: "rabbitmq"
     service: "{{ rabbitmq_services[service_name] }}"
   become: true
-  shell: "docker exec {{ service.container_name }} rabbitmqctl wait {{ rabbitmq_pid_file }}"
+  command: "docker exec {{ service.container_name }} rabbitmqctl wait {{ rabbitmq_pid_file }}"
   when:
     - inventory_hostname == groups[service.group]|first