terraformpostgresql
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| terraformpostgresql [2024/11/28 22:28] – z0hpvk | terraformpostgresql [2025/03/08 22:24] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Terraform with PostgreSQL ===== | ===== Terraform with PostgreSQL ===== | ||
| - | ==== Microsoft Azure ==== | + | ==== Microsoft Azure and PostgreSQL Flexible Server |
| === Useful Links === | === Useful Links === | ||
| Line 10: | Line 10: | ||
| [https:// | [https:// | ||
| - | === providers.tf | + | The below commands will initialise Terraform, create an execution plan and apply it.\\ |
| + | Afterwards you can clean up the resources created via the terraform destroy command.\\ | ||
| + | < | ||
| + | terraform init -upgrade | ||
| + | terraform validate | ||
| + | terraform plan -out main.tfplan | ||
| + | terraform apply main.tfplan | ||
| + | |||
| + | terraform plan -destroy -out main.destroy.tfplan | ||
| + | terraform apply main.destroy.tfplan | ||
| + | </ | ||
| + | |||
| + | === Terraform Code === | ||
| + | == providers.tf == | ||
| <file yaml providers.tf> | <file yaml providers.tf> | ||
| terraform { | terraform { | ||
| Line 32: | Line 45: | ||
| </ | </ | ||
| - | === variables.tf | + | == variables.tf == |
| <file yaml variables.tf> | <file yaml variables.tf> | ||
| variable " | variable " | ||
| Line 55: | Line 68: | ||
| </ | </ | ||
| - | === main.tf | + | == main.tf == |
| Uses existing resource group, virtual network and network security group | Uses existing resource group, virtual network and network security group | ||
| Line 79: | Line 92: | ||
| </ | </ | ||
| + | == postgresql-fs-db.tf == | ||
| + | <file yaml postgresql-fs-db.tf> | ||
| + | locals { | ||
| + | pg_config = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | resource " | ||
| + | name = " | ||
| + | collation = " | ||
| + | charset | ||
| + | server_id = azurerm_postgresql_flexible_server.default.id | ||
| + | } | ||
| + | |||
| + | resource " | ||
| + | for_each = local.pg_config | ||
| + | name = each.key | ||
| + | value = each.value | ||
| + | server_id = azurerm_postgresql_flexible_server.default.id | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | == outputs.tf == | ||
| + | <file yaml outputs.tf> | ||
| + | output " | ||
| + | value = azurerm_postgresql_flexible_server.default.name | ||
| + | } | ||
| + | |||
| + | output " | ||
| + | value = azurerm_postgresql_flexible_server_database.default.name | ||
| + | } | ||
| + | |||
| + | output " | ||
| + | sensitive = true | ||
| + | value = azurerm_postgresql_flexible_server.default.administrator_password | ||
| + | } | ||
| + | </ | ||
terraformpostgresql.1732832932.txt.gz · Last modified: (external edit)
