Terraform provider for INWX (InterNetworX)
With this custom terraform provider plugin you can manage your INWX domains.
You could either install it manually on your workstation or use it from the terraform registry.
If you want to install it manually:
- Download the
compiled plugin and make the file executable (
chmod +x terraform-provider-inwx
).
Or if you have Go installed:go get github.com/andrexus/terraform-provider-inwx go install github.com/andrexus/terraform-provider-inwx
- Add plugin binary to your ~/.terraformrc file
providers { inwx = "/path/to/your/bin/terraform-provider-inwx" }
Since @ofzhur published this to the terraform registry, we are able to use it so.
terraform {
required_providers {
inwx ={
source = "ofzhur/inwx"
}
}
}
provider "inwx" {
username = "${var.inwx_username}"
password = "${var.inwx_password}"
sandbox = "${var.inwx_sandbox}" // default is false
tan = "${var.inwx_tan}" // if 2-Factor authentication is enabled for your INWX account
}
// example mx record
resource "inwx_record" "example" {
domain = "example.com"
name = ""
type = "mx"
value = "mx.example.com"
ttl = 3600
priority = 10
}
// example A record
resource "inwx_record" "example" {
domain = "example.com"
name = "www" // subdomain e.g. www.example.com
type = "A"
value = "1.2.3.4"
ttl = 3600
priority = ""
}
variable inwx_username {
type = string
description = "user provided inwx username"
}
variable inwx_password {
type = string
description = "user provided inwx password"
}
variable "inwx_tan" {
type = string
description = "user provided inwx 2fa tan"
}
variable "inwx_sandbox" {
default = false
type = string
description = inwx sanbox"
}
inwx_username = "username"
inwx_password = "password"
If you don't specify the value for inwx_tan variable (which you normally should not do because TAN is only valid for 30 seconds) terraform will prompt you to input the TAN in command line. Alternatively you can pass this variable as a command line parameter.
terraform plan -var 'inwx_tan=545817'