diff --git a/roles/install_arch/tasks/main.yml b/roles/install_arch/tasks/main.yml
index adeae6307fb3725daba1f88190ea84d5119354a7..c6b54ff780de4de0710ca9a83773016744eaf460 100644
--- a/roles/install_arch/tasks/main.yml
+++ b/roles/install_arch/tasks/main.yml
@@ -81,16 +81,21 @@
   register: chroot_pacman_key_populate
   changed_when: "chroot_pacman_key_populate.rc == 0"
 
-- name: install ucode update for Intel
-  set_fact: ucode="intel-ucode"
-  when: "'GenuineIntel' in ansible_facts['processor']"
-
-- name: install ucode update for AMD
-  set_fact: ucode="amd-ucode"
-  when: "'AuthenticAMD' in ansible_facts['processor']"
+- name: install ucode update
+  block:
+    - name: install ucode update for Intel
+      set_fact: ucode="intel-ucode"
+      when: "'GenuineIntel' in ansible_facts['processor']"
+
+    - name: install ucode update for AMD
+      set_fact: ucode="amd-ucode"
+      when: "'AuthenticAMD' in ansible_facts['processor']"
+  when:
+    - "'hcloud' not in group_names"
+    - inventory_hostname != 'packer-base-image'
 
 - name: install arch base from bootstrap chroot
-  command: chroot /tmp/root.x86_64 pacstrap /mnt base linux btrfs-progs grub openssh python-requests python-yaml inetutils {{ ucode }}
+  command: chroot /tmp/root.x86_64 pacstrap /mnt base linux btrfs-progs grub openssh python-requests python-yaml inetutils {{ ucode | default('') }}
   args:
     creates: /tmp/root.x86_64/mnt/bin