diff --git a/roles/etcdctl/tasks/main.yml b/roles/etcdctl/tasks/main.yml
index d046c9fb296fd0b26574401c0397ff2217743998..3f0a9d2e12e84ab0a5c371f5644100249985ac8a 100644
--- a/roles/etcdctl/tasks/main.yml
+++ b/roles/etcdctl/tasks/main.yml
@@ -42,7 +42,10 @@
     when: container_manager ==  "docker"
 
   - name: Copy etcdctl script to host
-    shell: "{{ bin_dir }}/nerdctl cp \"$({{ bin_dir }}/crictl ps -q --image {{ etcd_image_repo }}:{{ etcd_image_tag }})\":/usr/local/bin/etcdctl {{ etcd_data_dir }}/etcdctl"
+    shell: >-
+      etcd_ctr_id="$({{ bin_dir }}/crictl ps -q --image {{ etcd_image_repo }}:{{ etcd_image_tag }})" &&
+      etcd_ctr_pid="$({{ bin_dir }}/crictl inspect --output go-template --template '{{ '{{' }} .info.pid {{ '}}' }}' ${etcd_ctr_id})" &&
+      cp /proc/${etcd_ctr_pid}/root/usr/local/bin/etcdctl {{ etcd_data_dir }}/etcdctl
     when: container_manager in ['crio', 'containerd']
 
   - name: Copy etcdctl to {{ bin_dir }}