---
page_title: Modules Overview - Configuration Language
description: >-
  Modules are containers for multiple resources that are used together in a
  configuration. Find resources for using, developing, and publishing modules.
---

# Modules

> **Hands-on:** Try the [Reuse Configuration with Modules](https://learn.hashicorp.com/collections/terraform/modules?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorials.

_Modules_ are containers for multiple resources that are used together. A module
consists of a collection of `.tf` and/or `.tf.json` files kept together in a
directory.

Modules are the main way to package and reuse resource configurations with
Terraform.

## The Root Module

Every Terraform configuration has at least one module, known as its
_root module_, which consists of the resources defined in the `.tf` files in
the main working directory.

## Child Modules

A Terraform module (usually the root module of a configuration) can _call_ other
modules to include their resources into the configuration. A module that has
been called by another module is often referred to as a _child module._

Child modules can be called multiple times within the same configuration, and
multiple configurations can use the same child module.

## Published Modules

In addition to modules from the local filesystem, Terraform can load modules
from a public or private registry. This makes it possible to publish modules for
others to use, and to use modules that others have published.

The [Terraform Registry](https://registry.terraform.io/browse/modules) hosts a
broad collection of publicly available Terraform modules for configuring many
kinds of common infrastructure. These modules are free to use, and Terraform can
download them automatically if you specify the appropriate source and version in
a module call block.

Also, members of your organization might produce modules specifically crafted
for your own infrastructure needs. [Terraform Cloud](https://cloud.hashicorp.com/products/terraform) and
[Terraform Enterprise](/enterprise) both include a private
module registry for sharing modules internally within your organization.

## Using Modules

- [Module Blocks](/language/modules/syntax) documents the syntax for
  calling a child module from a parent module, including meta-arguments like
  `for_each`.

- [Module Sources](/language/modules/sources) documents what kinds of paths,
  addresses, and URIs can be used in the `source` argument of a module block.

- The Meta-Arguments section documents special arguments that can be used with
  every module, including
  [`providers`](/language/meta-arguments/module-providers),
  [`depends_on`](/language/meta-arguments/depends_on),
  [`count`](/language/meta-arguments/count),
  and [`for_each`](/language/meta-arguments/for_each).

## Developing Modules

For information about developing reusable modules, see
[Module Development](/language/modules/develop).
