
This assumes you have setup Terraform as described in RabbitMQ - Getting Started with Terraform. Let's say you have the following files on your Terraform server.
/usr/local/terraform/rabbitmq/main.tf
/usr/local/terraform/rabbitmq/foo/required_provider.tf
/usr/local/terraform/rabbitmq/foo/bindings.tf
/usr/local/terraform/rabbitmq/foo/exchanges.tf
/usr/local/terraform/rabbitmq/foo/policies.tf
/usr/local/terraform/rabbitmq/rabbitmq/foo/queues.tf
/usr/local/terraform/foo/shovels.tf
/usr/local/terraform/rabbitmq/foo/vhosts.tf
Add the following to your vhosts.tf file. This will create the foo virtual host.
resource "rabbitmq_vhost" "vhost1" {
name = "foo"
}
You may need to reissue the terraform init command.
~]# terraform init
Initializing the backend...
Initializing modules...
Initializing provider plugins...
Terraform has been successfully initialized!
The terraform plan command can be used to see what Terraform will try to do.
terraform plan
By default, the terraform.tfstate file should be found in your root module directory (/usr/local/terraform/rabbitmq in this example).
- If the virtual host does not exist and the terraform.tfstate file does not contain the virtual host, Terraform will create the virtual host.
- If the virtual host exists and the terraform.tfstate file contains the virtual host and a difference is found between the vhosts.tf file and the terraform.tfstate file, Terraform will update the virtual host.
- If the virtual host exists and the terraform.tfstate file contains the virtual host and the virtual host is removed from the vhosts.tf file, Terraform will destroy (delete) the virtual host.
The terraform apply command from your root module directory (/usr/local/terraform/rabbitmq in this example) can be used to create, update or destory the virtual host.
terraform apply
Something like this should be displayed, and you will be prompted to enter yes.
Terraform will perform the following actions:
# rabbitmq_vhost.vhost will be created
+ resource "rabbitmq_vhost" "vhost1" {
+ id = (known after apply)
+ name = "foo"
}
Plan: 1 to add, 0 to change, 0 to destroy.
After entering yes, the following should be displayed.
rabbitmq_vhost.vhost: Creation complete after 0s [id=foo]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Did you find this article helpful?
If so, consider buying me a coffee over at