diff --git a/openappstack/cluster.py b/openappstack/cluster.py
index 139a5359240ac6986f4a7d7a1ec085dd2e418963..e795f8e49fdd2c21015c752b5b18752c15139120 100644
--- a/openappstack/cluster.py
+++ b/openappstack/cluster.py
@@ -152,6 +152,12 @@ class Cluster:
 
         file_contents = yaml.safe_dump(settings, default_flow_style=False)
         log.debug(file_contents)
+
+        # Create CLUSTER_DIR/group_vars/all/ is non-existant
+        vars_dir = os.path.dirname(self.settings_file)
+        if not os.path.exists(vars_dir):
+            os.makedirs(vars_dir)
+
         with open(self.settings_file, 'w') as stream:
             stream.write(file_contents)
             log.info("Created %s", self.settings_file)