mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Signed-off-by: Christian Mesh <christianmesh1@gmail.com> Signed-off-by: ollevche <ollevche@gmail.com> Co-authored-by: ollevche <ollevche@gmail.com>
85 lines
4.1 KiB
Plaintext
85 lines
4.1 KiB
Plaintext
---
|
|
description: |-
|
|
The `tofu providers mirror` command downloads the providers required
|
|
for the current configuration and copies them into a directory in the local
|
|
filesystem.
|
|
---
|
|
|
|
# Command: providers mirror
|
|
|
|
The `tofu providers mirror` command downloads the providers required
|
|
for the current configuration and copies them into a directory in the local
|
|
filesystem.
|
|
|
|
In normal use, `tofu init` will automatically download needed providers
|
|
from provider registries as part of initializing the current working directory.
|
|
Sometimes OpenTofu is running in an environment where that isn't possible,
|
|
such as on an isolated network without access to an OpenTofu Registry. In
|
|
that case,
|
|
[explicit installation method configuration](../../../cli/config/config-file.mdx#explicit-installation-method-configuration)
|
|
allows you to configure OpenTofu, when running on a particular system, to
|
|
consult only a local filesystem directory where you've created a local mirror
|
|
of the necessary plugins, and to skip accessing the upstream registry at all.
|
|
|
|
The `tofu providers mirror` command can automatically populate a directory
|
|
that will be used as a local filesystem mirror in the provider installation
|
|
configuration.
|
|
|
|
## Usage
|
|
|
|
Usage: `tofu providers mirror [options] <target-dir>`
|
|
|
|
A single target directory is required. OpenTofu will create under that
|
|
directory the path structure that is expected for filesystem-based provider
|
|
plugin mirrors, populating it with `.zip` files containing the plugins
|
|
themselves.
|
|
|
|
:::note
|
|
Use of variables in [module sources](../../../language/modules/sources.mdx#support-for-variable-and-local-evaluation)
|
|
requires [assigning values to root module variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables)
|
|
when running `tofu providers mirror`.
|
|
:::
|
|
|
|
This command accepts the following generic options:
|
|
|
|
* `-var 'NAME=VALUE'` - Sets a value for a single
|
|
[input variable](../../../language/values/variables.mdx) declared in the
|
|
root module of the configuration. Use this option multiple times to set
|
|
more than one variable. Refer to
|
|
[Input Variables on the Command Line](../plan.mdx#input-variables-on-the-command-line) for more information.
|
|
|
|
* `-var-file=FILENAME` - Sets values for potentially many
|
|
[input variables](../../../language/values/variables.mdx) declared in the
|
|
root module of the configuration, using definitions from a
|
|
["tfvars" file](../../../language/values/variables.mdx#variable-definitions-tfvars-files).
|
|
Use this option multiple times to include values from more than one file.
|
|
|
|
There are several other ways to set values for input variables in the root
|
|
module, aside from the `-var` and `-var-file` options. Refer to
|
|
[Assigning Values to Root Module Variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables) for more information.
|
|
|
|
OpenTofu will also generate various `.json` index files which contain suitable
|
|
responses to implement
|
|
[the network mirror protocol](../../../internals/provider-network-mirror-protocol.mdx),
|
|
if you upload the resulting directory to a static website host. OpenTofu
|
|
ignores those index files when using the directory as a filesystem mirror,
|
|
because the directory entries themselves are authoritative in that case.
|
|
|
|
This command supports the following additional options:
|
|
|
|
* `-platform=OS_ARCH` - Choose which target platform to build a mirror for.
|
|
By default OpenTofu will obtain plugin packages suitable for the platform
|
|
where you run this command. Use this flag multiple times to include packages
|
|
for multiple target systems.
|
|
|
|
Target platform names consist of an operating system and a CPU
|
|
architecture. For example, `linux_amd64` selects the Linux operating system
|
|
running on an AMD64 or x86_64 CPU.
|
|
|
|
You can run `tofu providers mirror` again on an existing mirror directory
|
|
to update it with new packages. For example, you can add packages for a new
|
|
target platform by re-running the command with the desired new `-platform=...`
|
|
option, and it will place the packages for that new platform without removing
|
|
packages you previously downloaded, merging the resulting set of packages
|
|
together to update the JSON index files.
|