Skip to content

Install in an air-gapped environment

When you finish, Terraform on a host with no internet access installs the Qumulo provider from files you carried in.

Before you start

  • A connected machine with Terraform, curl, and gpg
  • A way to move files to the air-gapped host

Use the provider mirror whenever you can run Terraform on the connected machine, and fall back to dev_overrides only when you cannot.

  1. On the connected machine, in a directory with the required_providers block from Install the provider, download the provider into a mirror directory. Add one -platform flag per target platform.

    terraform providers mirror -platform=linux_amd64 ./qumulo-mirror
    

    ./qumulo-mirror now holds the provider zip for each platform.

  2. Optionally, verify the mirrored zips by hand. Terraform cannot re-check the GPG signature when it installs from a local mirror.

    Each zip passes the signature and checksum checks.

  3. Copy the mirror directory to the air-gapped host, for example to /opt/terraform/providers.

    The host now holds the mirror at that path.

  4. Point Terraform at the mirror in ~/.terraformrc (Linux and macOS) or %APPDATA%/terraform.rc (Windows).

    provider_installation {
      filesystem_mirror {
        path    = "/opt/terraform/providers" # <-- Replace with your mirror path
        include = ["qumulo-terraform-registry.s3.us-east-1.amazonaws.com/*/*"]
      }
      direct {
        exclude = ["qumulo-terraform-registry.s3.us-east-1.amazonaws.com/*/*"]
      }
    }
    

    Terraform now looks in the mirror for the Qumulo provider and nowhere else.

  5. Run terraform init, then terraform plan and terraform apply as normal.

    terraform init ends with Terraform has been successfully initialized! If it reports Failed to query available provider packages, check the .terraformrc path and contents.

  1. On the connected machine, download and verify the zip for your platform with Verify a release signature by hand.

    The zip passes the signature and checksum checks.

  2. Copy the zip to the air-gapped host and unzip it.

    VERSION=1.4.22        # <-- Replace with the release version
    PLATFORM=linux_amd64  # <-- Replace with your platform
    mkdir -p /opt/terraform/providers/qumulo
    unzip "terraform-provider-qumulo_${VERSION}_${PLATFORM}.zip" -d /opt/terraform/providers/qumulo
    

    /opt/terraform/providers/qumulo now holds the provider binary.

  3. Point Terraform at the binary in ~/.terraformrc (Linux and macOS) or %APPDATA%/terraform.rc (Windows).

    provider_installation {
      dev_overrides {
        "qumulo-terraform-registry.s3.us-east-1.amazonaws.com/qumulo/qumulo" = "/opt/terraform/providers/qumulo"
      }
      direct {}
    }
    

    Terraform now loads the Qumulo provider from that directory.

  4. Skip terraform init, which would try to reach the registry, and run terraform plan and terraform apply directly.

    Both commands print a warning that provider development overrides are in effect, which is expected.

dev_overrides skips Terraform's checks

With dev_overrides, Terraform ignores version constraints and lock file verification for this provider. Your out-of-band signature and checksum check is the only one that runs.

Next

Once terraform plan runs, deploy your first cluster with Deploy a basic AWS cluster.