Как настроить сервер хранения объектов с помощью Minio в Ubuntu 16.04

Вступление

От облачных решений резервного копирования до высокодоступных сетей доставки контента (CDN) хранилище объектов стало неотъемлемой частью современного технологического ландшафта. А благодаря небольшому размеру, простому интерфейсу и совместимости с несколькими облачными сервисами хранения сервер хранения объектов Minio предлагает множество возможностей.

Minio - это сервер хранения объектов с открытым исходным кодом, который хранит неструктурированные данные, такие как фотографии, видео, образы виртуальных машин, контейнеры и файлы журналов, как объекты. В распределенном режиме Minio предоставляет один сервер хранения объектов, который объединяет несколько дисков, распределенных по многим серверам.

Minio написан на Go, поставляется с клиентом командной строки и интерфейсом браузера и поддерживает простой сервис очередей для https://www.digitalocean.com/community/tutorials/an-advanced-message-queuing-protocol-amqp-walkthrough [Расширенный протокол очереди сообщений (AMQP)], Elasticsearch, https: / /www.digitalocean.com/community/tutorials/how-to-install-and-use-redis[Redis], https://www.digitalocean.com/community/tutorials/how-to-install-and-configure- nats-on-ubuntu-16-04 [NATS] и Postgres цели.

В этом уроке вы будете:

  • Установите сервер Minio на свой сервер DigitalOcean и настройте его в качестве службы systemd.

  • Настройте сертификат SSL / TLS, используя Let Encrypt, для защиты связи между сервером и клиентом.

  • Получите доступ к интерфейсу браузера Minio через HTTPS, чтобы использовать и администрировать сервер.

Предпосылки

Для завершения этого урока вам понадобится:

  • Один сервер Ubuntu 16.04, настроенный по следующему адресу: https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04: это руководство по начальной настройке Ubuntu 16.04], включая sudo пользователь root и брандмауэр.

  • Полностью зарегистрированное доменное имя. Вы можете приобрести один на https://namecheap.com [Namecheap] или получить его бесплатно на Freenom.

  • Следующие записи DNS настроены для вашего сервера Minio. Вы можете следовать thutorial этого имени хоста для получения подробной информации о том, как их добавить.

  • Запись A с вашим именем сервера (например, ++) указывает на IPv4-адрес вашего объектного сервера.

  • Запись AAAA с именем вашего сервера, указывающим на IPv6-адрес вашего объектного сервера, если вы хотите, чтобы ваш сервер был доступен через IPv6.

  • Go установлен на сервере https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04, используя это руководство для установки Go на Ubuntu 16.04].

Шаг 1 - Установка и настройка сервера Minio

Вы можете установить сервер Minio, скомпилировав исходный код или через двоичный файл. На этом этапе мы установим сервер самым простым способом - через двоичный файл - и затем все настроим позже.

Сначала войдите на свой сервер:

ssh sammy@

Если вы недавно не обновляли базу данных пакетов, обновите ее сейчас:

sudo apt-get update

Затем загрузите двоичный файл сервера Minio:

curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio

Файл с именем + minio + будет загружен в ваш рабочий каталог. Сделайте его исполняемым:

sudo chmod +x minio

Теперь переместите файл в каталог + / usr / local / bin +, где сценарий запуска systemd Minio ожидает его найти:

sudo mv minio /usr/local/bin

Из соображений безопасности мы не хотим запускать сервер Minio с правами * root *. И так как сценарий systemd, который мы будем использовать на шаге 2, ищет учетную запись пользователя и группу с именем * minio-user *, давайте создадим их сейчас.

sudo useradd -r minio-user -s /sbin/nologin

Изменить владельца бинарного файла на * minio-user *:

sudo chown minio-user:minio-user /usr/local/bin/minio

Далее нам нужно создать каталог, в котором Minio будет хранить файлы. Это будет место для хранения buckets, которое вы создадите на шаге 5.

sudo mkdir /usr/local/share/

Передайте права собственности на этот каталог * minio-user *:

sudo chown minio-user:minio-user /usr/local/share/

Каталог + / etc + является наиболее распространенным местом для файлов конфигурации сервера, поэтому мы создадим место для Minio там.

sudo mkdir /etc/

Отнесите права собственности на этот каталог также * minio-user *:

sudo chown minio-user:minio-user /etc/minio

Используйте nano или ваш любимый текстовый редактор, чтобы создать файл среды, необходимый для изменения конфигурации по умолчанию:

sudo nano /etc/default/

И добавьте следующие переменные:

/ И т.д. / по умолчанию / Minio

MINIO_VOLUMES=""
MINIO_OPTS="-C  --address :"
  • * MINIO_VOLUMES *: указывает на каталог хранения, который вы создали ранее.

  • * MINIO_OPTS *: Изменяет поведение сервера. Флаг * -C * указывает Minio на каталог конфигурации, который он должен использовать, в то время как флаг * –address * сообщает Minio IP-адрес и порт для привязки. Если IP-адрес не указан, Minio будет связываться с каждым адресом, настроенным на сервере, включая localhost и любые IP-адреса, связанные с Docker, поэтому лучше явно указывать IP-адрес в этом файле. Порт по умолчанию * 9000 *, но вы можете выбрать другой.

Наконец, сохраните и закройте файл среды, когда вы закончите вносить изменения.

Теперь Minio установлен, поэтому в следующий раз мы настроим сервер для работы в качестве системной службы.

Шаг 2 - Установка загрузочного скрипта Minio Systemd

На этом шаге мы настроим сервер Minio для управления в качестве службы systemd. Сначала загрузите файл дескриптора сервиса Minio, используя следующую команду:

curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

После завершения загрузки файл с именем + minio.service + должен находиться в вашем рабочем каталоге.

Чтобы проверить содержимое + minio.service + перед его применением, откройте его в текстовом редакторе и просмотрите его содержимое:

nano minio.service

Когда вы освоитесь с содержимым скрипта, закройте текстовый редактор.

Systemd требует, чтобы файлы модулей были сохранены в каталоге конфигурации systemd, поэтому переместите + minio.service + туда:

sudo mv minio.service /etc/systemd/system

Затем выполните следующую команду, чтобы перезагрузить все модули systemd:

sudo systemctl daemon-reload

Наконец, включите Minio для запуска при загрузке:

sudo systemctl enable minio

Теперь, когда скрипт systemd установлен и настроен, давайте запустим сервер.

Шаг 3 - Запуск сервера Minio

На этом этапе вы запустите сервер и измените брандмауэр, чтобы разрешить доступ через интерфейс браузера.

Сначала запустите сервер Minio:

sudo systemctl start minio

Вы можете проверить состояние Minio, IP-адрес, к которому он привязан, использование памяти и многое другое с помощью команды:

sudo systemctl status minio

Вы должны получить вывод, как показано ниже:

Outputminio.service - Minio
  Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2017-04-07 00:26:10 UTC; 11min ago
    Docs: https://docs.minio.io
 Process: 25069 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /etc/default/minio" (code=exit
Main PID: 25073 (minio)
   Tasks: 6
  Memory: 20.7M
     CPU: 544ms
  CGroup: /system.slice/minio.service
          └─25073 /usr/local/bin/minio server -C /etc/minio --address :

Apr 07 00:26:11  minio[25073]: Browser Access:
Apr 07 00:26:11  minio[25073]:    http://:

Далее вам необходимо разрешить доступ через брандмауэр к серверу Minio через настроенный порт. В этом уроке это порт ++.

Итак, сначала добавьте правило:

sudo ufw allow

Затем перезапустите брандмауэр:

sudo systemctl restart ufw

Теперь Minio готов принимать трафик, но перед подключением к серверу давайте обеспечим безопасную связь, установив сертификат SSL / TLS.

Шаг 4. Защита доступа к серверу Minio с помощью SSL-TLS-сертификата Let’s Encrypt

На этом шаге мы будем использовать консольный клиент генерации сертификатов Concert, чтобы создать сертификат SSL / TLS с использованием открытого источника https: // letsencrypt. org / [Let’s Encrypt] центр сертификации. Хотя существуют и другие способы создания сертификатов Let’s Encrypt, Concert написан как разработчиками Minio, так и является частью официального https://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-for -minio [инструкция по установке].

Сначала скачайте Concert с помощью команды:

go get -u github.com/minio/concert

После завершения файл с именем + концерт + должен быть в каталоге + bin + вашего GOPATH.

Далее мы сгенерируем сертификат.

Выполните следующую команду, используя флаг + - dirs +, чтобы сообщить Концерту выходной каталог, адрес электронной почты и имя домена, которое вы хотите использовать:

sudo /bin/concert gen --dir

Вывод будет выглядеть так:

Output2017/04/09 01:21:08 Generated certificates for  under  will expire in 89 days.

Кроме того, Concert сгенерирует файлы + private.key и` + public.cert`, которые вы можете проверить, запустив + ls + в указанном вами каталоге.

Затем мы скопируем эти два файла в каталог + certs + в папке конфигурации сервера Minio, которая является + / etc / minio + для этого урока.

sudo cp /private.key /certs/
sudo cp /public.crt /certs/

Теперь измените владельца файлов на * minio-user *:

sudo chown minio-user:minio-user /certs/private.key
sudo chown minio-user:minio-user /certs/public.crt

Перезапустите сервер Minio, чтобы он узнал о сертификате и начал использовать HTTPS:

sudo systemctl restart minio

Поскольку сгенерированный сертификат Let Encrypt действителен всего 90 дней, а многократное его продление вручную будет неэффективным, запустите Concert в режиме сервера, чтобы настроить систему на автоматическое обновление сертификата:

sudo concert server --dir  @

Благодаря этому соединение Minio теперь защищено, и сертификат SSL / TLS будет автоматически обновлен для вас. На следующем шаге вы подключитесь к Minio через браузер, чтобы использовать и администрировать сервер.

Шаг 5 - Безопасное подключение к веб-интерфейсу Minio с использованием HTTPS

На этом шаге вы будете безопасно подключаться к веб-интерфейсу Minio через HTTPS, а затем создадите сегменты и загрузите в них объекты.

Войдите в веб-интерфейс, указав в браузере + https: //: +.

Далее вам нужно будет найти свои учетные данные для входа. Minio записал свой файл конфигурации в каталог + / etc / minio +, когда вы запустили сервер на шаге 3. Этот файл конфигурации + config.json + содержит значения * accessKey * и * secretKey *, которые вам понадобятся для доступа к серверу сейчас. Обязательно скопируйте и храните оба ключа в легкодоступном и безопасном месте на будущее.

/etc/minio/config.json

{
   "version": "19",
   "credential": {
       "accessKey": "",
       "secretKey": ""
   },
   "region": "us-east-1",
   ...
}

Теперь войдите в основной интерфейс, введя свои учетные данные и нажав круглую кнопку со стрелкой прямо под полями ввода.

Оттуда нажмите светло-красную кнопку * + * в правом нижнем углу основного интерфейса, чтобы вызвать две дополнительные желтые кнопки.

изображение: http: //assets.digitalocean.com/articles/how-to-set-up-an-object-storage-server-using-minio/61120-ssb.png [основной интерфейс Minio]

Нажмите среднюю желтую кнопку и введите в подсказку имя нового сегмента, нажав клавишу «+ ENTER +», чтобы сохранить свой ответ. Ваше новое ведро теперь готово для хранения!

Если вы хотите добавить объекты в корзину, нажмите ту же самую светло-красную кнопку, что и раньше, а затем нажмите желтую кнопку top, чтобы открыть запрос на загрузку файла.

На этом этапе вы проработали весь основной веб-интерфейс, но помимо создания корзин и загрузки объектов, вы также можете создавать новые учетные данные для входа в систему, устанавливать даты истечения срока действия для общих ссылок объектов и вообще удалять объекты.

Заключение

Теперь у вас есть собственный сервер хранения объектов, использующий Minio, к которому вы можете безопасно подключаться через веб-интерфейс, используя сертификат Let Encrypt SSL / TLS. При желании вы можете посмотреть на Minio настольные клиенты для FreeBSD, Linux, Mac и Windows в качестве альтернативного способа использования и администрирования хранилища объектов. сервер.

Кроме того, если вы хотите увеличить объем хранилища вашей установки Minio сверх размера диска вашего сервера, вы можете использовать https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean [Служба блочного хранилища DigitalOcean] для подключения тома к вашему серверу, что увеличивает емкость хранилища на целых 80 ТБ за долю от стоимости раскрутки капли одинакового размера.

Дополнительную информацию о Minio можно найти на веб-сайте документации project.

Related