import json
 import logging
 import os
+import platform
 import pprint
 import shutil
 import sys
         name = 'baremetal{}'.format(idx)
         volume = name + ".qcow2"
         volume_path = os.path.join(constants.LIBVIRT_VOLUME_PATH, volume)
-        # TODO(trozet): add back aarch64
         # TODO(trozet): add error checking
         vm_lib.create_vm(
             name, volume_path,
         deploy_vars = dict()
         deploy_vars['virtual'] = args.virtual
         deploy_vars['debug'] = args.debug
+        deploy_vars['aarch64'] = platform.machine() == 'aarch64'
         deploy_vars['dns_server_args'] = ''
         deploy_vars['apex_temp_dir'] = APEX_TEMP_DIR
         deploy_vars['stackrc'] = 'source /home/stack/stackrc'
 
 import libvirt
 import logging
 import os
+import platform
 import shutil
 import subprocess
 import time
             "enabled": ns_external['enabled']
         }
 
-        # FIXME (trozet): for now hardcoding aarch64 to false
-        config['aarch64'] = False
+        # Check if this is an ARM deployment
+        config['aarch64'] = platform.machine() == 'aarch64'
 
         return config
 
 import iptc
 import logging
 import os
+import platform
 import pprint
 import subprocess
 
 
 
 def generate_inventory(target_file, ha_enabled=False, num_computes=1,
-                       controller_ram=DEFAULT_RAM, arch='x86_64',
+                       controller_ram=DEFAULT_RAM, arch=platform.machine(),
                        compute_ram=DEFAULT_RAM, vcpus=4):
     """
     Generates inventory file for virtual deployments
 
     - lineinfile:
         path: /usr/lib/python2.7/site-packages/ironic/common/pxe_utils.py
         regexp: '_link_ip_address_pxe_configs'
-        line: '_link_mac_pxe_configs(task)'
+        line: '        _link_mac_pxe_configs(task)'
       when: aarch64
     - block:
         - name: undercloud install