/iq-test

Primary LanguagePython

iq-test

Описание

Ansible роли для установки и настройки кластера S3 Minio

Состав:

  • ubuntu 16.04
  • nginx
  • keepalived
  • Minio

Требования для деплоя:

  • Vagrant
  • VirtualBox
  • Ansible >= 2.6
  • Python 3

Виртуальные машины

$ vagrant up

При желании, можно отредактировать Vagrantfile и указать количество ВМ, подсеть, количество памяти и процессоров на ВМ. По умолчанию создаются 3 машины для балансировщиков и 6 машин для s3 хранилища. Для корректной работы minio нужно выделить на каждую вм не менее 512 Мб памяти (по умолчанию выделено 768 Мб).

Для дальнейшей работы через Ansible, в каждую ВМ экспоритируется публичный ключ текущего пользователя из файла ~/.ssh/id_rsa.pub. При желании, путь файлу можно переопределить в Vagrantfile.

Компоненты

$ ansible-playbook -i inventory/example.yaml deploy.yaml

Настройка доступов в S3 и генерация скриптов загрузки/выгрузки:

$ ansible-playbook -i inventory/example.yaml minio.yaml

Скрипты

Скрипты загрузки и выгрузки изображения генерируются плейбуком minio.yaml

Загрузка изображения в S3:

$ ./upload.py

Выгрузка изображения из s3 со смещением:

$ ./download.py

В случае успеха, в корневом каталоге репозитория появится файл good.jpg с логотипом.

Работоспособность

Корректность работы протеститрована на Fedora Linux 30 amd64.

vagrant --version
Vagrant 2.2.5
~ $ vboxheadless --version
Oracle VM VirtualBox Headless Interface 6.0.14_RPMFusion
(C) 2008-2019 Oracle Corporation
All rights reserved.

6.0.14_RPMFusionr132055
ansible --version
ansible 2.9.1
  config file = /home/azabiralov/.ansible.cfg
  configured module search path = ['/home/azabiralov/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
python3 --version
Python 3.7.5