diff --git a/roles/dev_images/tasks/build_image.yml b/roles/dev_images/tasks/build_image.yml
index e33f4289b586c1d4d91ab2a6c8a6f0fd6bc10aa1..8a264404db6dca020f7faa6b97676976e2fa0128 100644
--- a/roles/dev_images/tasks/build_image.yml
+++ b/roles/dev_images/tasks/build_image.yml
@@ -3,20 +3,18 @@
     name: "{{ image.image_name }}:{{ image.image_tag }}"
   register: image_exists
 
-- name: Stop if image exists
-  ansible.builtin.meta: end_play
-  when: image_exists.images | length > 0
-
-- name: Get VM image
-  amazon.aws.aws_s3:
-    aws_access_key: "{{ s3.access_key }}"
-    aws_secret_key: "{{ s3.secret_key }}"
-    region: "{{ s3.region }}"
-    bucket: "{{ s3.bucket }}"
-    object: "{{ image.vm_image }}"
-    dest: "$HOME/vrnetlab/{{ image.integration }}/{{ image.vm_image }}"
-    mode: get
-
-- name: Build/install the docker image
-  community.general.make:
-    chdir: "$HOME/vrnetlab/{{ image.integration }}"
+- name: Build image if necessary
+  when: image_exists.images | length == 0
+  block:
+    - name: Get VM image
+      amazon.aws.aws_s3:
+        aws_access_key: "{{ s3.access_key }}"
+        aws_secret_key: "{{ s3.secret_key }}"
+        region: "{{ s3.region }}"
+        bucket: "{{ s3.bucket }}"
+        object: "{{ image.vm_image }}"
+        dest: "$HOME/vrnetlab/{{ image.integration }}/{{ image.vm_image }}"
+        mode: get
+    - name: Build/install the docker image
+      community.general.make:
+        chdir: "$HOME/vrnetlab/{{ image.integration }}"
diff --git a/roles/dev_images/tasks/import_image.yml b/roles/dev_images/tasks/import_image.yml
index 8144ec18d9105166855bcea98bf8ee6f7b976b7e..968648b0ebc490a9bc642e6fcc64cc16ee3ef3af 100644
--- a/roles/dev_images/tasks/import_image.yml
+++ b/roles/dev_images/tasks/import_image.yml
@@ -3,40 +3,23 @@
     name: "{{ image.image_name }}:{{ image.image_tag }}"
   register: image_exists
 
-- name: Stop if image exists
-  ansible.builtin.meta: end_play
-  when: image_exists.images | length > 0
-
-- name: Get VM images
-  amazon.aws.aws_s3:
-    aws_access_key: "{{ s3.access_key }}"
-    aws_secret_key: "{{ s3.secret_key }}"
-    region: "{{ s3.region }}"
-    bucket: "{{ s3.bucket }}"
-    object: "{{ image.filename }}"
-    dest: "/tmp/{{ image.filename }}"
-    mode: get
-
-# - name: Add docker images
-#   community.docker.docker_image:
-#     docker_host: "unix:/run/docker.sock"
-#     name: "{{ item.image_name }}"
-#     tag: "{{ item.image_tag }}"
-#     load_path: "/tmp/{{ item.filename }}"
-#     source: load
-#     state: present
-#   loop:
-#     - filename: cEOS-lab-4.28.2.1F.tar
-#       image_name: ceos
-#       image_tag: 4.28.1.1F
-
-
-- name: Add docker images
-  # community.docker.docker_image doesn't work in this case
-  ansible.builtin.shell:
-    cmd: "docker image import /tmp/{{ image.filename }} {{ image.image_name }}:{{ image.image_tag }}"
-
-- name: Remove downloaded file
-  ansible.builtin.file:
-    path: "/tmp/{{ image.filename }}"
-    state: absent
+- name: Add docker image if necessary
+  when: image_exists.images | length == 0
+  block:
+    - name: Get VM images
+      amazon.aws.aws_s3:
+        aws_access_key: "{{ s3.access_key }}"
+        aws_secret_key: "{{ s3.secret_key }}"
+        region: "{{ s3.region }}"
+        bucket: "{{ s3.bucket }}"
+        object: "{{ image.filename }}"
+        dest: "/tmp/{{ image.filename }}"
+        mode: get
+    - name: Add docker images
+      # community.docker.docker_image doesn't work in this case
+      ansible.builtin.shell:
+        cmd: "docker image import /tmp/{{ image.filename }} {{ image.image_name }}:{{ image.image_tag }}"
+    - name: Remove downloaded file
+      ansible.builtin.file:
+        path: "/tmp/{{ image.filename }}"
+        state: absent
diff --git a/roles/dev_images/tasks/main.yml b/roles/dev_images/tasks/main.yml
index d878dba823f807077bfba5ac2f164f1819509549..5d1180ef47c051a77ff12a614d2aca862c0c4b53 100644
--- a/roles/dev_images/tasks/main.yml
+++ b/roles/dev_images/tasks/main.yml
@@ -10,11 +10,11 @@
     version: v0.8.1
     dest: $HOME/vrnetlab
 
-# - name: Build vrnetlab images
-#   ansible.builtin.include_tasks: build_image.yml
-#   loop: "{{ vrnetlab_images }}"
-#   loop_control:
-#     loop_var: image
+- name: Build vrnetlab images
+  ansible.builtin.include_tasks: build_image.yml
+  loop: "{{ vrnetlab_images }}"
+  loop_control:
+    loop_var: image
 
 - name: Import normal images
   ansible.builtin.include_tasks: import_image.yml