Использование Terraform для выгрузки / восстановления базы данных MariaDB - PullRequest
1 голос
/ 10 июля 2019

Здесь не используются облачные ресурсы. Я новичок в использовании 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 Ответ

2 голосов
/ 10 июля 2019

Вы можете использовать уничтожить провайдеров времени , чтобы инициировать действие провайдера до того, как 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"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...