Используемые термины: OpenStack , Linux , CentOS , Ubuntu .
Для первичного знакомства с OpenStack можно использовать DevStack. В двух словах, это скрипт для быстрого развертывания частного облака.
В нашей инструкции мы рассмотрим установку OpenStack с помощью DevStack, а также пройдемся по минимальным настройкам облачной инфраструктуры и поднимем виртуальную машину. Наши команды будут рассчитаны как на Linux Deb (Debian, Ubuntu), так и RPM (Rocky, CentOS).
Прежде чем начать развертывание, обратите внимание на программно-аппаратные требования к DevStack.
Операционная система Linux — как правило, две последние версии LTS Ubuntu, последняя/текущая версия Fedora, CentOS/RHEL/Rocky Linux 9 и OpenSUSE.
Если тестовый стенд находится на гипервизоре, то нам нужно включить поддержку вложенной виртуализации. Для каждой системы это свой набор действий. Например:
Для проверки, что наша платформа поддерживает технологию виртуализации можно ввести команду:
cat /proc/cpuinfo | egrep «(vmx|svm)»
Мы должны увидеть непустой вывод.
Выполним несколько действий по преднастройке нашего сервера.
Чтобы в интерфейсе правильно фиксировалось время наших действий, настроим синхронизацию времени.
Задаем часовой пояс:
timedatectl set-timezone Europe/Moscow
* в данном примере московское время. Список всех зон можно посмотреть командой:
timedatectl list-timezones
Устанавливаем сервис для синхронизации времени и запускаем его.
а) если на системе Deb:
apt install chrony
systemctl enable chrony
б) если на системе RPM:
yum install chrony
systemctl enable chronyd —now
После старта сервисов, нам нужно, чтобы были открыты порты:
В зависимости от используемой утилиты для управления брандмауэром, наши действия будут отличаться.
На некоторых системах, особенно, deb, по умолчанию, брандмауэр разрешает все пакеты. В таком случае, настройка не потребуется. Однако, для продуктивной среды безопасней, чтобы сетевой фильтр блокировал лишние запросы.
а) для Iptables (как правило, для систем Deb):
iptables -I INPUT -p tcp —dport 80 -j ACCEPT
iptables -I INPUT -p tcp —dport 6080 -j ACCEPT
Для сохранения правила используем iptables-persistent:
apt install iptables iptables-persistent
netfilter-persistent save
б) для firewalld (как правило, для систем RPM):
firewall-cmd —permanent —add-service=http
firewall-cmd —permanent —add-port=6080/tcp
firewall-cmd —reload
Для корректной установки системы нужен python версии 3.7 и выше. Проверить текущую версию в нашей системе можно командой:
python3 —version
Если версия ниже необходимой, то устанавливаем более современную версию python.
а) если на системе Deb:
apt install python3.8
б) если на системе RPM:
yum install python3.8
Установка выполнена.
После настроим версию python по умолчанию:
update-alternatives —config python3
На экран будет выведен список разных версий python — выбираем в списке наш вариант (мы установили 3.8), например:
Selection Command
————————————————
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
3 /usr/bin/python3.8
Enter to keep the current selection[+], or type selection number: 3
Еще раз проверяем версию:
python3 —version
На самом деле, нам нужен всего один пакет — git. Он нам понадобиться для загрузки проекта.
а) если на системе Deb:
apt install git
б) если на системе RPM:
yum install git
Переходим к развертыванию нашего OpenStack.
Создадим пользователя, под которым будет работать наш сервис:
useradd -s /bin/bash -d /opt/stack -m stack
* в данном примере будет создан пользователь stack с домашней директорией /opt/stack .
Разрешаем вход в созданный домашний каталог для всех пользователей:
chmod +x /opt/stack
OpenStack будет работать от пользователя stack, которому нужны привилегии суперпользователя для запуска команд stack. Для этого добавим файл в sudoers:
vi /etc/sudoers.d/stack
stack ALL=(ALL) NOPASSWD: ALL
Теперь заходим под пользователем
sudo -u stack -i
Загружаем проект devstack:
$ git clone https://opendev.org/openstack/devstack
Переходим в скачанный каталог:
$ cd devstack
Создаем файл local.conf — в нем будут храниться нужные нам пароли, и его будет использовать установщик:
$ vi local.conf
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
#HOST_IP=192.168.0.15
* в данном примере мы создадим переменную с паролем secret , который будет использоваться для сервиса, базы данных и брокера rabbit. Вам необходимо его заменить на свой. Обратите внимание на последнюю закомментированную строку с HOST_IP — если на нашем сервере несколько IP-адресов, нам нужно указать, какой будет использоваться для OpenStack.
Теперь можно запустить скрипт установки:
$ ./stack.sh
В зависимости от производительности сервера, на выполнение скрипта уйдет от 10 до 30 минут, в среднем. Ждем.
В процессе будет установлены следующие компоненты:
В конце мы должны увидеть что-то на подобие:
This is your host IP address: 192.168.0.15
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.0.15/dashboard
Keystone is serving at http://192.168.0.15/identity/
…
Openstack развернут.
Переходим в веб интерфейс по адресу http://<IP-адрес нашего сервера>/ — должна открыться страница аутентификации. Вводим логин admin и пароль, который указали в файле local.conf (в нашем примере, это secret ).
Пройдем небольшой путь, чтобы создать первый инстанс.
Переходим по ссылке Образы . Мы должны увидеть единственный образ cirros . Обычно, его используют для простой демонстрации, что облако работает. Но для продуктивных развертываний, нам нужны собственные образы на основе предпочтительных операционных систем. Создание собственного образа выходит за рамки данной инструкции, но при желании, можно почитать об этом, например, на Русских блогах .
Мы же загрузим готовый образ с официального сайта. Например, для CentOS 7 в формате QCOW2.
После возвращаемся в панель управления, на страницу управления образами и кликаем по
В открывшемся окне задаем имя образа, выбираем скачанный нами образ, выбираем формат QCOW2:
И создаем образ. В списке должен появиться CentOS7.
Большинство облачных образов не позволяют выполнить первичный вход с использованием логина и пароля пользователя. Для этого используется SSH-ключ, состоящий из пары открытый/закрытый ключи. Нам нужно создать такую пару в Openstack. Для этого переходим в пункт меню Вычислительные ресурсы — Ключевые пары . Мы можем создать новую пару или, если у нас есть свой сертификат, импортировать открытый ключ:
Предположим, у нас нет своего ключа — кликаем по Создать ключевую пару . В открывшемся окне вводим название и выбираем тип:
Кликаем по Создать ключевую пару — открытый ключ будет сохранен в Openstack, а на наш компьютер будет загружен закрытый. Сохраняем его.
Теперь переходим в пункт меню Вычислительные ресурсы — Инстансы . Кликаем по кнопке Запустить инстанс :
В открывшемся окне необходимо заполнить несколько форм.
На первом шаге задаем имя будущего инстанса:
На шаге 2 для нас главное — выбрать образ, который мы загрузили на раннем этапе:
Из списка готовых типов инстансов выбираем подходящий. Каждый тип определяет технические характеристики виртуальной машины:
Выбираем сеть:
Укажем, какая ключевая пара будет прописана на сервере для возможности к нему подключиться по SSH:
Ждем создания виртуальной машины.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…