Облако в Ubuntu своими руками
В этой статье не будет долгой и порой скучной теории о том, что такое OpenStack, зачем его использовать Мы сразу приступим к самому интересному — к установке OpenStack в Ubuntu 16.04.
Прежде, чем приступить сразу отметим цель этого руководства — установка OpenStack на личные компьютеры или облачные виртуальные машины. Мы не будем строить , а просто покажем процесс установки OpenStack в Ubuntu.
Устанавливать OpenStack можно, как на физический компьютер, например, на личный ноутбук или на виртуальную машину в облаке. Мы будем использовать собственные виртуальные машины.
Как минимум, понадобится машина с двумя процессорами, 4 Гб «оперативки», доступом к Интернету, а также доступными извне портами 22 и 80. Для установки OpenStack мы будем использовать DevStack, который предоставляет набор инструментов для установки основных сервисов OpenStack из исходников, необходимых для разработки и тестирования. Так вот, DevStack поддерживает Ubuntu 16.04/17.04, Fedora 24/25, CentOS 7, а также некоторые версии Debian и OpenSUSE. Если у вас нет особых предпочтений, то наиболее тщательно тестировалась работа DevStack на Ubuntu 16.04, именно поэтому данная версия и выбрана в качестве целевой (хотя уже доступна 18.04).
Конфигурация нашей виртуальной машины будет превышать минимальные системные требования — 4 процессора, 8 Гб памяти:
Конфигурация виртуальной машины
Сразу нужно заметить, что машина, на которую будет установлен DevStack, должна быть выделенной для него и только для него. Никаких других функций машина выполнять не должна. Желательно выполнять установку DevStack на чистую машину, на которую не устанавливалось другое ПО.
После создания виртуальной машины войдите на нее по ssh. Первым делом нам нужно создать пользователя и предоставить ему права sudo. Сделаем это:
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo «stack ALL=(ALL) NOPASSWD: ALL» | sudo tee /etc/sudoers.d/stack
Первая команда создает пользователя с именем stack. Вторая – предоставляет ему sudo-права.
В результате вы должны увидеть вывод:
stack ALL=(ALL) NOPASSWD: ALL
Пользователь stack создан
Войдите под пользователем stack и загрузите DevStack:
Данная команда клонировала релиз Pike. При желании вы можете загрузить более свежие релизы Rocky или Queens. Список релизов доступен по адресу https://releases.openstack.org/.
После клонирования сразу перейдите в каталог devstack:
Nextcloud: собственное облако с блэкджеком и плюшками
Файловый сервер должен быть доступен из любой точки мира и желательно на всех устройствах. В нем должен быть внутренний почтовый сервер, текстовый процессор, совместимый с Word, конференция (как текстовая, так и с видеозвонками), встроенный антивирус, предупреждение о запланированных событиях и так далее.
Кроме того, приложение должно быть совместимо со всеми устройствами и ОС, что бы никто из штата не мог сослаться на то, что ничего не видел и не слышал. Да, сейчас предлагается множество решений по аренде облака. Но когда объем данных и количество пользователей начинают зашкаливать, а вы – лишь простое бюджетное учреждение, приходится искать более доступные варианты.
Такое решение есть, и называется оно Nextcloud. Запустить его может любой администратор, который на базовом уровне знаком с Linux и построением сети.
Установка Nextcloud в Ubuntu 18.04
Почему именно Ubuntu 18.04? Установка Nextcloud на эту версию сводится к трем шагам. В случае с Debian все компоненты, в т.ч. Lamp, вам придется устанавливать по отдельности.
Установка
Загружаем дистрибутив Ubuntu 18.04 с официального сайта и устанавливаем его. Открываем терминал и устанавливаем SSH.
sudo apt install openssh-server
Теперь установку можно продолжить либо в терминале, либо через SSH. Как всегда, сначала запускаем обновление пакетов:
Далее запускаем установку Nextcloud:
sudo snap install nextcloud
Все нужные компоненты сервера будут установлены автоматически. Поскольку будет использована система snap, не нужно задумываться о совместимостях.
Создание администратора
Запускаем браузер и обращаемся к IP-адресу или доменному имени сервера (о настройке домена я писал ранее; раздел – «Выбираем и регистрируем домен»).
В браузере нас приветствует голубое окно, вводим логин и пароль для создания администратора. Также администратора можно создать через консоль:
sudo nextcloud.manual-install имя пароль
Если создание администратора делается через веб-интерфейс, можно поставить галочку для установки рекомендованных приложений. На «боевом» сервере ставить лишнее не имеет смысла, все необходимое можно поставить по мере надобности. Но поскольку в моем случае все происходит на тестовом сервере, я установил все компоненты.
Установка SSL
Установка сертификата крайне желательна, поскольку без него будут недоступны некоторые функции, например использование видео- и аудиоконференций.
Let’s Encrypt
Установка сертификата производится с помощью команды:
sudo nextcloud.enable-https lets-encrypt
Ваш сервер будет проверен на соответствие требованиям службы Let’s Encrypt. После чего вам следует указать адрес электронной почты и имя домена. Если все пройдет нормально, то по окончании установки сервер перезапустит Apache для активации SSL.
Самоподписанный сертификат
Устанавливаем сертификат командой:
sudo nextcloud.enable-https self-signed
Внимание! При открытии адреса браузер может предупредить о ненадежном сертификате.
Магазин приложений
В магазине есть множество приложений, как платных, так и бесплатных. Коротко перечислю некоторые из них:
- Antivirus for files – антивирус для файлов.
- Collabora Online – аналог Word.
- BigBlueButton Integration – интеграция видеоконференции BigBlueButton.
- Moodle integration – интеграция с Moodle.
- File sharing – поделится ссылкой на файл, по аналогии с Яндекс- или Гугл-Диском.
- Talk – групповой чат (конференция), позволяющий обменится видео, аудио, текстовыми сообщениями. Также тут есть общий рабочий стол, демонстрация собственного рабочего стола, приглашение по ссылке и т.д.
- SuiteCRM integration – добавляет в рабочее пространство извещения из CRM.
Безопасность
Если наш сервер напрямую «смотрит» в интернет, закрываем все порты кроме нужных трех:
sudo ufw allow 80,443,22/tcp
Если сервер находится за шлюзом, то прокидываем порты.
Команды
Поскольку сервер практически всегда находится вне пределов физического доступа, полезно иметь под рукой список команд. Поскольку список довольно большой, я не буду приводить их здесь, а оставлю ссылку на официальный сайт.