Minio selfhosted S3 + хранение состояния Terraform

Minio - это selfhosted решение, аналог AWS S3. Поддерживает почти полностью API от S3 и можно его интегрировать для того, чтоб хранить свои файлы, почти не меняя кода, который предназначен для работы с Amazon.

Поднимается он с помощью docker-compose буквально с считанные минуты.

Кусок для docker-compose.yml:

  minio:
    image: minio/minio
    hostname: minio
    container_name: minio
    command: server /data
    volumes:
      - /opt/minio:/data
    ports:
      - 9000:9000

Запускаем docker-compose up -d и идем на http://localhost:9000.

Если все прошло хорошо, то мы увидим web-интерфейс с запросом логина и пароля. Эта пара будет сгенерирована автоматически и взять ее можно в конфиге в каталоге /opt/minio. Эта же пара и будет ключами для awscli или terraform.

Теперь сделаем конфиг провайдера и бекэнда terraform, чтоб он зранил свое состояние в minio:

terraform {
  backend "s3" {
    bucket = "terraform-state"
    key    = "dev/terraform.tfstate"
    region = "us-east-1"
    access_key = "AWSKEY"
    secret_key = "AWSSECRET"
    endpoint = "http://localhost:9000"
    skip_credentials_validation = true
    force_path_style = true
  }
}

Ну вот и все. Пробуйте применять план. Все должно получиться.



Комментарии: