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
}
}
Ну вот и все. Пробуйте применять план. Все должно получиться.
Комментарии: