使用Terraform转储/还原MariaDB数据库

时间:2019-07-10 17:07:21

标签: mysql mariadb terraform

此处未使用云资源。 我是不熟悉Terraform的人。

我正在使用Terraform 0.12在服务器上安装软件。该软件期望远程MariaDB数据库为空,这是手动完成的。 (如果数据库不为空,则该软件将导致Terraform中止。。)现在它都是虚拟数据。

我想在销毁数据库之前使用Terraform对数据库进行 mysqldump ,以便可以在terraform apply上恢复相同的转储。最终,在软件升级之间需要保留数据库的内容。

我有Terraform代码来创建和销毁服务器并安装软件。很好目前,数据库是手动处理的。如果不加注释,则可以使用Terraform代码连接数据库,但是我没有足够的经验来做更多的事情。

provider "mysql" {
    endpoint = "10.0.1.2"
    username = "terraform"
    password = "changeme"
    version  = "~> 1.6"
}

resource "mysql_database" "default" {
    default_character_set = "utf8"
    name = "terraform_test_db"
}

1 个答案:

答案 0 :(得分:2)

您可以使用destroy time provisioners触发在Terraform尝试销毁资源之前进行预配器操作。

provider "mysql" {
  endpoint = "10.0.1.2"
  username = "terraform"
  password = "changeme"
  version  = "~> 1.6"
}

resource "mysql_database" "default" {
  name = "terraform_test_db"

  default_character_set = "utf8"

  provisioner "local-exec" {
    when    = "destroy"
    command = "mysqldump [options] > dump.sql"
  }
}