title: Terraform reports 'No module called "name of the module" is declared' in "root" module
body: <p>I have done exploration and I want to stick customized module concept rather than to use the Azure public registry of modules.</p>
  
  <p>Source code location is here</p>
  
  <pre><code>https://github.com/ameyaagashe/help_me_cross_2
  </code></pre>
  
  <p>I run terraform on command line with below arguments:</p>
  
  <pre><code>terraform plan -var "resource_group_name=nxt-grp-prd-manage-rgp-au-se" -var "virtual_network_name=virtual_network_1" -var "sql_subnet_name=subnet_1" -var "app_subnet_name=subnet_2" -var "application_nsg=test_nsg" -var "count_vm=2" -var "sql_host_basename=sqlvms" -var "app_host_basename=appvms" -var "storage_account_suffix=sta" -var "virtual_machine_size=Standard_B1ms" -var "virtual_machine_image_publisher=MicrosoftWindowsServer" -var "virtual_machine_image_offer=WindowsServer" -var "virtual_machine_image_sku=2012-R2-Datacenter" -var "virtual_machine_image_version=latest" -var "username=devopsadmin" -var "password=Angular12#$%"
  </code></pre>
  
  <p>However, I am getting errors like below:</p>
  
  <pre><code>Error: Reference to undeclared module
  
    on ../../modules/compute/main.tf line 25, in resource "azurerm_virtual_machine" "tf-vm":
    25:   location                         = module.resourcegroup.external_rg_location
  
  No module call named "resourcegroup" is declared in sql_vms.
  
  
  Error: Reference to undeclared module
  
    on ../../modules/compute/main.tf line 26, in resource "azurerm_virtual_machine" "tf-vm":
    26:   resource_group_name              = module.resourcegroup.external_rg_name
  
  No module call named "resourcegroup" is declared in sql_vms.
  
  
  Error: Reference to undeclared module
  
    on ../../modules/compute/main.tf line 27, in resource "azurerm_virtual_machine" "tf-vm":
    27:   network_interface_ids            = [element(module.network.network_interface_ids,count.index)]
  
  No module call named "network" is declared in sql_vms.
  
  
  Error: Reference to undeclared module
  
    on ../../modules/network/data.tf line 5, in data "azurerm_virtual_network" "tf-vn":
     5:   resource_group_name  = module.resource_groups.external_rg_name
  
  No module call named "resource_groups" is declared in networking.
  
  
  Error: Reference to undeclared module
  
    on ../../modules/nsg/main.tf line 3, in resource "azurerm_network_security_group" "tf-nsg":
     3:   location            = module.resourcegroup.external_rg_location
  
  No module call named "resourcegroup" is declared in network_security_group.
  
  
  Error: Reference to undeclared module
  
    on ../../modules/nsg/main.tf line 4, in resource "azurerm_network_security_group" "tf-nsg":
     4:   resource_group_name = module.resourcegroup.external_rg_name
  
  No module call named "resourcegroup" is declared in network_security_group.
  
  
  Error: Reference to undeclared input variable
  
    on ../../modules/resourcegroup/data.tf line 2, in data "azurerm_resource_group" "tf-rg-external":
     2:   name = var.rg_name
  
  An input variable with the name "rg_name" has not been declared. This variable
  can be declared with a variable "rg_name" {} block.
  </code></pre>
  
  <p>Unable to understand the underlying issue...</p>
  
  <p>I am defining all modules in their own terraform configuration files and calling them in root module?</p>
  
  <p>I would sincerely appreciate your assistance.</p>