使用 Terraform 转储/恢复 MariaDB 数据库

1 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"
}
Run Code Online (Sandbox Code Playgroud)

yda*_*coR 6

您可以使用销毁时间配置程序在 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"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 啊,我想我找到了我自己问题的答案(谢谢老师): ```provisioner "local-exec" {when = "create" command = "mysql < dump.sql" } ``` (2认同)