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