diff --git a/ansible/group_vars/switches/type b/ansible/group_vars/switches/type
deleted file mode 100644
index 5f0ea8d1d8c3e160732d6b2eed0883de510f083d..0000000000000000000000000000000000000000
--- a/ansible/group_vars/switches/type
+++ /dev/null
@@ -1,7 +0,0 @@
----
-###############################################################################
-# Switch type configuration.
-
-# This configures the type of switch, which is used to determine how the switch
-# will be configured.
-switch_type:
diff --git a/ansible/physical-network.yml b/ansible/physical-network.yml
index 9166ada8e4d9a6b8a613367d1c177af82f3078c6..f75061016d765aee850fadd27b7ddb253a69cc57 100644
--- a/ansible/physical-network.yml
+++ b/ansible/physical-network.yml
@@ -19,6 +19,12 @@
     # Set this variable to True in order to display the candidate switch
     # configuration and exit without applying it.
     physical_network_display: False
+    # List of supported values for the 'switch_type' variable.
+    supported_switch_types:
+      - dell
+      - dell-powerconnect
+      - junos
+      - mellanox
   tasks:
     - name: Fail if both interface name and description limits are specified
       fail:
@@ -29,6 +35,14 @@
         - physical_network_interface_limit != ''
         - physical_network_interface_description_limit != ''
 
+    - name: Fail if the switch type is not defined
+      fail:
+        msg: >
+          The switch type is not defined or is unrecognised. Configure the type
+          of each host in the 'switches' group via the 'switch_type' variable.
+      when: switch_type is not defined or
+            switch_type not in supported_switch_types
+
     - name: Group hosts by their switch type
       group_by:
         key: "switches_of_type_{{ switch_type }}"