Создание своей облачной системы за час
В последнее время появилась возможность создать свой облачный сервис (IaaS) без усилий и программирования. В простейшем случае можно создать Cloud-In-A-Box используя всего один компьютер с процессором который поддерживает виртуализацию. Данное облако имеет свои ограничения и, по-моему, подходит только для тренировки. Если у вас есть две машины с процессорами которые поддерживают виртуализацию, то можно создать полноценное облако пригодное для тестирования и разработки облачных решений. Недавно компания Eucalyptus представила новую версию своего продукта Eucalyptus 3.4. С помощью программы FastStart можно создать полноценную AWS и S3 совместимую IaaS систему без усилий и глубоких знаний продукта.
Я использовал две Intel NUC машины для установки Eucalyptus. Так как у NUC нет дисковода, то я воспользовался CentOS 6.2 машиной для создания загрузочного USB ключа. Для начала надо получить FastStart ISO зайдя на www.eucalyptus.com/eucalyptus-cloud/get-started/try#faststart. После этого создать загрузочный ключ. Я использовал UNetbootin для создания ключа. Не забудьте скопировать FastStart ISO на ключ после окончания работы UNetbootin. На моей машине UNetbootin оставил файловую систему на ключе в read-only режиме после окончания работы и надо было сделать umount и mount ключа для записи файла.
Перед началом инсталляции решите какие IP вы присвоите машинам и какие будете использовать для виртуальных машин в вашем облаке. Я решил присвоить 192.168.10.1 Frontend машине, 192.168.10.2 Node Controller(NC) и использовать 192.168.9.1-192.168.9.100 для публичных адресов виртуальных машин. Убедитесь, что ваши сетевые настройки позволяют задавать машинам статические IP. Если это невозможно вам придется использовать DHCP, что чревато проблемами если сервера получат новые IP после инсталляции системы. Так, что я бы рекомендовал использовать статические IP.
После создания ключа загрузите первую машину с USB. Сначала я установил Node Controller. При инсталляции помимо нескольких стандартных вопросов CentOS мне надо было ввести IP сервера, маску сети, Default Gateway и DNS.
После создания NC я загрузил вторую машину с USB и выбрал Install CentOS 6 with Eucalyptus Frontend в меню. При инсталляции было задано несколько дополнительных вопросов про сетевые настройки и публичные и закрытые адреса для виртуальных машин. Для публичных я выбрал вышеуказанный диапазон, а для закрытых предложенный системой 172.31.Х.Х диапазон. После, когда система предложила зарегистрировать NC, я указал адрес первой созданной машины 192.168.10.2. И это все. После перезагрузки я получил работающую облачную систему.
Для работы с ней можно использовать как UI так и командную строку. После инсталляции система сообщает все параметры для работы с облаком. Если вы что-то забыл просто зайдите на Frontend машину по ssh и вы получите напоминание как это:
Для работы через UI перейдите по адресу указанному выше
Введите ваши данные для demo пользователя и можно начать работать. По умолчанию в системе уже есть один образ на базе CentOS 6.4 и созданы несколько ключей. Так что можно сразу запустить виртуальную машину.
Для работы с командной строкой зайдите по ssh на Frontend машину. И загрузите переменные окружения для одного из двух созданных по умолчанию пользователей. Например:
После этого можно начать использовать командную строку для работы с системой. Например, отобразить все ресурсы системы доступные для запуска виртуальных машин:
На моей NC машине стоит 4-х ядерный процессор и 128 GB диск. По умолчанию, после установки я мог бы запустить до 4-х виртуальных машин. Но как вы видите, система предлагает запустить до 8 виртуальных машин. Что бы этого добиться зайдите по ssh на NC машину и отредактируйте несколько переменных в /etc/eucalyptus/eucalyptus.conf файле. Я поставил:
После этого надо перезапустить NC процес /etc/init.d/eucalyptus-nc restart и в моем распоряжении оказалось в двое больше ресурсов. Я бы не стал злоупотреблять с изменением числа процессоров, но удвоить их, думаю, смело можно если виртуальные машины не будут использовать 100% своих процессорных мощностей.
Если вам привычнее использовать русскоязычный интерфейс в UI, то можно поменять языковые настройки UI. Для этого зайдите по ssh на Frontend машину и отредактируйте /etc/eucalyptus-console/console.ini файл. Надо поменять locale language=ru_RU
После этого перезапустите eucalyptus-console процесс /etc/init.d/eucalyptus-console restart
Зайдя опять в UI вы увидите, что меню и многие сообщения переведены на русский язык.
На всю инсталляцию двух машин и настройки я потратил меньше часа.
Источник
Как создать собственное облако, где можно бесплатно хранить любой объём данных
Мы все пользуемся облачными хранилищами, а некоторые из нас даже платят абонентскую плату за возможность хранить файлы сверх выделенного лимита. Это удобно — при наличии интернета нам в любой момент доступны все файлы, которые мы скопировали в облако. Но у таких сервисов есть и недостатки: их могут взломать хакеры, файлы могут попасть к посторонним, а если владельцев облака не устроит контент, который вы храните у них, ваш аккаунт могут заблокировать, и тогда все файлы пропадут. Создание собственного облака — отличное решение, хотя и у него есть свои недостатки.
Премущества персонального облака:
— Нет лимитов. Вы можете хранить столько файлов, сколько вмещается на накопители в вашем компьютере.
— Никаких платежей, всё бесплатно (кроме электроэнергии).
— Полная приватность. Файлы копируются с компьютера на другие устройства без использования стороннего сервера.
— Возможность делиться неограниченным количеством папок и файлов с другими пользователями.
— Управление уровнями доступа к файлам и папкам.
Недостатки персонального облака:
— Придётся держать компьютер постоянно включённым, иначе удалённый доступ к файлам пропадёт.
— Не получится прикрутить ваше облако к большей части приложений, которые работают с популярными хранилищами.
— Риск лишиться файлов из-за сбоя в компьютере.
Как создать своё облако:
1. Зайдите на сайт Tonido и создайте учётную запись.
2. Скачайте программу Tonido Server. Установите её, запустите и разрешите ей доступ к сети (если выскочит диалоговое окно брандмауэра). Эта программа создаёт из компьютера сервер, благодаря чему доступ к хранящимся на нём файлам может осуществляться из любой точки мира через интернет.
3. Значок Tonido Server висит в панели уведомлений. По нажатию на нему в браузере открывается локальный адрес http://127.0.0.1:10001 с интерфейсом сервиса, где можно указать, какие папки будут добавлены в облако.
4. Скачайте мобильное или десктопное приложение Tonido. Запустите его и зайдите в свою учётную запись. Если вы увидите в приложении файлы, которые хранятся на компьютере, значит облако готово и им можно пользоваться. Теперь у вас всегда будут при себе все нужные вам файлы.
Приложение может открывать некоторые типы файлов, в том числе видео, музыку и тексты. Любой файл можно скачать на устройство или отправить другу (по электронной почте или с прямым доступом по ссылке в сервисе Tonido).
Строго говоря, сервер, запущенный на домашнем компьютере, не может считаться полноценным облачным сервисом. Облако — профессиональное решение, которое использует технологию распределения файлов по нескольким серверам, благодаря чему риск их пропажи почти исключается. Вероятность повреждения данных можно минимизировать и дома — для этого, например, можно создать RAID-массив. Но даже в этом случае остаются другие риски, например, физическое повреждение компьютера или его кража. Обезопаситься от этого сложнее.
Источник
Персональное облако
Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.
Возможные решения
Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
Ниже рассмотрена часть из них.
OwnCloud
Реализован на PHP/Javascript.
- Возможно расширять функционал, устанавливая приложения из репозитория облака.
- Есть интеграция с офисом Collabora и OnlyOffice.
- Возможно использовать существующие хранилища, такие как FTP, Swift, S3, Dropbox и т.п.,
распределяя данные между ними и локальным облаком. - Шифрование на клиенте.
- Возможность предоставлять файлы внешним пользователям по e-mail.
- Есть автоматизация операций с файлами (например, автоматическое добавление тэгов).
- LDAP.
- Есть аудио плеер, музыкальная коллекция, галерея плагин чтения PDF.
- Интеграция с Zimbra.
- Есть календари, списки задач, текстовые редакторы и т.п.
- Антивирус и защита от ransomware.
- Двуфакторная аутентификация.
- Возможность имперсонации под другого пользователя (с целью отладки).
NextCloud
Форк OwnCloud. Реализован на PHP/Javascript.
- Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV.
- Есть NextCloud Talk, через который возможно делать видеозвонки и видеоконференции.
- Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux.
- Синхронизация с мобильными устройствами.
- Календарь (также как CalDAV).
- Планировщик задач.
- Адресная книга (также как CardDAV).
- Потоковое мультимедиа (используется Ampache).
- Поддерживает разные провайдеры авторизации: LDAP, OpenID, Shibboleth.
- Двуфакторная авторизация.
- Разделение контента между группами или используя публичные URL. Тонкая настройка правил.
- Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием. Анонсирована поддержка онлайн-версий редакторов LibreOffice.
- Закладки.
- Механизм сокращения URL.
- Фотогалерея.
- Просмотрщик PDF (используется PDF.js)
- Интеграция с Collabora и OnlyOffice.
- Модуль логирования.
- Возможность создания свои Web-сайтов (на PicoCMS).
- Интеграция с Outlook и Thunderbird.
- Интеграция клиента в Gnome.
- Возможность использовать внешнее хранилище.
- Полнотекстовый поиск.
- Интеграция с антивирусом.
SparkleShare
Реализован на C#.
- Версионирование.
- Шифрование на клиенте.
- Прозрачная синхронизация между несколькими пользователями: удалённые изменения появятся в локальном каталоге, выделенном для SparkleShare.
Seafile
Реализован на C/Javascript.
- Файлы могут быть организованы в библиотеки, которые могут быть синхронизированы между устройствами.
- Есть клиент, позволяющий создать локальный «диск», отображённый на облако.
- Встроенное шифрование. Все файлы шифруются клиентом и хранятся в облаке зашифрованными.
- Поддержка мобильных устройств.
- HTTS/TLS шифрование.
- Есть LDAP.
- Тонкая настройка прав.
- Версионирование файлов.
- Возможность создания снимка каталога, к которому потом возможно вернуться.
- Дедупликация.
- Поддержка блокировки файлов.
- Совместное редактирование файлов онлайн.
- Антивирус.
- Тонкая настройка прав.
- Периодический бэкап через rsync.
- WebDAV.
- REST API.
- Возможность интеграции с Collabora.
- Быстрый и нетребовательный к ресурсам.
- Считается надёжным.
- Установка прав на подкаталоги поддерживается только в платной Pro версии.
- Интеграция с антивирусом — только в Pro версии.
- Аудит — только в Pro версии.
- Полнотекстовый поиск — только в Pro версии.
- Интеграция с S3 и Ceph — только в Pro версии.
- Онлайн просмотр Doc/PPT/Excel — только в Pro версии.
Pydio
Реализован на PHP/Javascript.
- Обмен файлами не только между пользователями, но и между несколькими экземплярами Pydio.
- SSL/TLS шифрование.
- WebDAV.
- Возможность создать несколько рабочих пространств.
- Обмен файлами с внешними пользователями, с тонкой настройкой обмена (например, прямые ссылки, пароль и т.п.).
- Встроен офис Collabora.
- Предосмотр и редактирование изображений.
- Есть встроенный аудио и видео проигрыватель.
ProjectSend
Реализован на PHP/Javascript.
- Возможно расшаривать файлы, как между конкретными пользователями, так и между группами.
- Полный отчёт по операциям с файлами.
- Возможность внешним пользователям загружать файлы (с целью обмена, например прикладывать баг-репорты).
SpiderOak
- Экономия места в хранилище и времени выгрузки файлов за счёт дедупликации и внесения изменений в уже имеющиеся файлы (вместо перезаписи файлов целиком).
- Настраиваемая мультиплатформенная синхронизация.
DropBox для синхронизации создаёт специальную папку, в которую надо помещать все синхронизируемые файлы. SpiderOak может работать с любым каталогом. - Сохранение всех хронологических версий файлов и удаленных файлов
- Совместное использование папок при помощи так называемых ShareRooms, на которые устанавливается пароль.
Файлы, обновлённые на локальном компьютере, автоматически обновляются в хранилище. Пользователи извещаются об изменениях по RSS. - Получение файлов с любого подключенного к Интернету устройства.
- Полное шифрование данных по принципу «нулевого знания».
- Поддержка неограниченного количества устройств.
- Шифрование данных на стороне клиента.
- Двуфакторная аутентификация.
Закрытая проприетарная система.
С учётом того, что данное ПО платное и частично закрытое, его использование исключается.
Установка NextCloud
Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.
Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.
Посмотреть, как он работает в демо-режиме вы можете здесь.
Вот общие точки сопряжения между облачным хранилищем и системой:
- /tank0/apps/cloud/nextcloud — хранилище облачного сервиса.
- /tank0/apps/onlyoffice — данные офиса.
- https://cloud.NAS.cloudns.cc — WEB интерфейс облачного сервиса.
Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.
Всё, что нужно вы найдёте в репозитории на Github.
Там же доступна конфигурация для SeaFile.
Сначала установите и запустите NextCloud.
Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:
Будет собран новый образ на основе Nextcloud 13.0.7. Если вы хотите изменить версию базового образа, сделайте это в app/Dockerfile . Я использую версию 15, но стоит заметить, что в ней не работают многие плагины, такие как загрузчик ocDownloader и заметки, а также я ещё не восстановил работоспособность OnlyOffice.
Кардинальных отличий или сильного улучшения производительности я не заметил.
Ниже я считаю, что вы используете версию 13+.
Далее, зайдите в NextCloud и выбрав в меню справа вверху «Приложения», выполните установку необходимых плагинов.
- LDAP user and group backend — сопряжение с LDAP.
- External Storage Support — поддержка внешних хранилищ. Нужна будет далее, с целью интеграции NextCloud и общих файлов, а также сопряжения с внешними облачными хранилищами. Про настройку внешних хранилищ я расскажу в другой статье.
- ocDownloader — загрузчик файлов. Расширяет функциональность облака. Docker образ специально пересобран так, чтобы он работал.
- ONLYOFFICE — интеграция с офисом. Без этого приложения, файлы документов не будут открываться в облаке.
- End-to-End Encryption — сквозное шифрование на клиенте. Если облако используют несколько пользователей, плагин необходим, чтобы удобно обеспечить безопасность их файлов.
- Brute-force settings — защита от подбора учётных данных. NextCloud смотрит в Интернет, потому лучше установить.
- Impersonate — позволяет администратору заходить под другими пользователями. Полезно для отладки и устранения проблем.
- Talk — видеочат.
- Calendar — говорит сам за себя, позволяет вести календари в облаке.
- File Access Control — позволяет запрещать доступ к файлам и каталогам пользователям на основе тэгов и правил.
- Checksum — позволяет вычислять и просматривать контрольные суммы файлов.
- External sites — создаёт ссылки на произвольные сайты на панельке вверху.
- Установлен загрузчик Aria2.
- Установлен загрузчик Youtube-DL.
- Установлены inotify-tools.
- Увеличены лимиты памяти для PHP.
- Web-сервер настроен под лучшую работу с LDAP.
Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.
Настройка LDAP не тривиальна, потому я расскажу подробнее.
Зайдите в «Настройки->Интеграция с LDAP/AD».
Добавьте сервер 172.21.0.1 с портом 389.
Логин: cn=admin,dc=nas,dc=nas .
NextCloud может управлять пользователями в базе LDAP и для этого ему потребуется администратор.
Нажимайте кнопку «Проверить конфигурацию DN» и, если индикатор проверки зелёный, кнопку «Далее».
Каждый пользователь имеет атрибут inetOrgPerson и состоит в группе users_cloud .
Фильтр будет выглядеть так:
Нажимайте «Проверить базу настроек и пересчитать пользователей», и если всё корректно, должно быть выведено количество пользователей. Нажимайте «Далее».
На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.
На этой странице надо ввести логин какого-либо пользователя и нажать «Проверить настройки».
Последний раз «Далее».
Тут нажмите «Дополнительно» и проверьте, что поле «База дерева групп» равно полю «База дерева пользователей» и имеет значение dc=nas,dc=nas .
Вернитесь в группы и установите в поле «Только эти классы объектов» галочку напротив groupOfUniqueNames .
Итоговый фильтр здесь такой:
Поле «Только из этих групп» я не устанавливал, т.к. хочу увидеть в интерфейсе NextCloud всех пользователей, а те кто не входит в группу users_cloud , отсеиваются фильтром на предыдущем этапе.
OnlyOffice
OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.
Но при этом, поддержка оригинального формата у него реализована гораздо лучше, почти как в оригинальном офисе от MS, он более стабилен, имеет более продуманный интерфейс.
Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.
Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.
Поясню некоторые моменты:
- Вам надо изменить на свой, также как и NAS на имя своей DNS зоны.
- HTTPS здесь не требуется включать, потому что хотя офис и виден снаружи, обмен с ним идёт через обратный прокси, который работает с пользователем исключительно по HTTPS. Так построена архитектура NAS.
Теперь надо поднять офис:
И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:
Затем, в настройках NextCloud требуется выбрать Пункт «Администрирование->ONLYOFFICE» и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.
В третьем поле надо прописать адрес облака.
JWT токен возможно сгенерировать, например здесь.
Если сервер настроен правильно, в меню создания документов облака появятся дополнительные пункты для офисных документов, а .docx файлы будут открывать в офисе.
Выводы
Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.
В этой роли NextCloud весьма удобен и обладает широким функционалом.
У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.
Источник