diff --git "a/examples/environment/\173\173 cookiecutter.cluster_name \175\175/common.yml" "b/examples/environment/\173\173 _environment_name \175\175/common.yml"
similarity index 100%
rename from "examples/environment/\173\173 cookiecutter.cluster_name \175\175/common.yml"
rename to "examples/environment/\173\173 _environment_name \175\175/common.yml"
diff --git "a/examples/environment/\173\173 cookiecutter.cluster_name \175\175/init.yml" "b/examples/environment/\173\173 _environment_name \175\175/init.yml"
similarity index 93%
rename from "examples/environment/\173\173 cookiecutter.cluster_name \175\175/init.yml"
rename to "examples/environment/\173\173 _environment_name \175\175/init.yml"
index 6153a6b..ca63bc4 100644
--- "a/examples/environment/\173\173 cookiecutter.cluster_name \175\175/init.yml"
+++ "b/examples/environment/\173\173 _environment_name \175\175/init.yml"
@@ -19,5 +19,5 @@
               {{ toyaml( node['parameters']['linux']['network']['interface'], width=14 ) }}
 {%- endif %}
           classes:
-          - environment.{{ cookiecutter.cluster_name }}.common
+          - environment.{{ _environment_name }}.common
 {%- endfor %}
diff --git a/reclass_tools/cli.py b/reclass_tools/cli.py
index c696400..864ba7b 100644
--- a/reclass_tools/cli.py
+++ b/reclass_tools/cli.py
@@ -109,7 +109,8 @@
 
         create_inventory.render_dir(template_dir=self.params.template_dir,
                                     output_dir=self.params.output_dir,
-                                    contexts=self.params.contexts)
+                                    contexts=self.params.contexts,
+                                    env_name=self.params.env_name)
 
     def get_params(self):
 
@@ -140,6 +141,11 @@
             help=('Show only the nodes which names are ended with the '
                   'specified domain, for example: example.local'))
 
+        env_name_parser = argparse.ArgumentParser(add_help=False)
+        env_name_parser.add_argument(
+            '--env-name', '-e', dest='env_name',
+            help=("Name of the 'environment' to create or use"))
+
         vcp_only_parser = argparse.ArgumentParser(add_help=False)
         vcp_only_parser.add_argument(
             '--vcp-only', dest='vcp_only',
@@ -210,7 +216,7 @@
                                     "node for already generated inventory "
                                     "only!"))
         subparsers.add_parser('render',
-                              parents=[render_parser],
+                              parents=[render_parser, env_name_parser],
                               help=("Render cookiecutter template using "
                                     "multiple metadata sources"))
 
diff --git a/reclass_tools/create_inventory.py b/reclass_tools/create_inventory.py
index f08fafe..a427c0d 100644
--- a/reclass_tools/create_inventory.py
+++ b/reclass_tools/create_inventory.py
@@ -80,7 +80,7 @@
     return current_underlay_context
 
 
-def render_dir(template_dir, output_dir, contexts):
+def render_dir(template_dir, output_dir, contexts, env_name):
     """Coockiecutter echancement to use several source JSON files
 
     :param template_dir: directory with templates to render
@@ -89,6 +89,7 @@
                           that provide the context variables for rendering.
                           Merge of the files usind update() into a single
                           dict is in the same order as files in the list.
+    :param env_name: name for new environment that will be created
     """
     def toyaml(value, width=0, indentfirst=False):
         string = yaml.dump(value, default_flow_style=False)
@@ -114,6 +115,7 @@
         merged_context = helpers.merge_nested_objects(merged_context, context)
 
     merged_context['toyaml'] = toyaml
+    merged_context['_environment_name'] = env_name
 
     try:
         generate.generate_files(
