Para los proveedores que no están en el registro de Terraform, se pueden descargar a mano en un directorio local. Por ejemplo, para libvirt…
~/.terraform.d/plugins/local.com/dmacvicar/libvirt/0.6.3/linux_amd64
En este caso, «local.com» es un dominio ficticio que usamos localmente. Si tienes tu propio registro Terraform, puedes usar tu dominio.
Luego, dentro del fichero de configuración indicamos a Terraform dónde buscar ese provider:
  required_providers {
    libvirt = {
      source  = "local.com/dmacvicar/libvirt"
      version = "0.6.3"
    }
  }