Практические задания
- Практическое задание №1. Создание виртуальной машины в новом проекте
- Практическое задание №3.Создание сервиса облачного хранилища
- Практическое задание №4.Wireguard
- Практическое задание №5-1. Запуск кластера Ceph
- Практическое задание №5-2. Установка клиентской ВМ и настройка динамической миграции на базе Corosync/Pacemaker
- Практическое задание №5-3. Ceph FS, Ceph Dashboard
Практическое задание №1. Создание виртуальной машины в новом проекте
Задачи:
- Подключиться к облачной инфраструктуре.
- Убедиться в наличии доступных сетей.
- Создать виртуальную машину.
- Настройка правил безопасности.
- Узнать адрес виртуальной машины.
- Подключиться к ВМ по ssh
1. Подключиться к облачной инфраструктуре.
Необходимо перейти по ссылке https://cloud.resds.ru. Для подключения использовать домен AD, а также учётную запись пользователя, используемую для подключения к WiFi СПбГУТ
Для выполнения практических занятий необходимо переключиться на проект [GROUP]:[team]-lab:sandbox.
2. Убедиться в наличии доступных сетей.
Открыть: проект -> сеть -> сети, и убедиться, что там есть сеть external-net (рис. 2)
3. Сгенерировать ключевую пару.
4. Создать виртуальную машину.
В открывшемся окне (рис. 6), во вкладке подробности ввести имя инстанса и нажать Следующая > внизу страницы.
В следующем меню (Источник) выбрать источник – образ, указать размер тома данных, выбрать удаление диска при удалении инстанса, выбрать необходимый вам образ из доступных (например Ubuntu-server-20.04:docker), и нажать справа от него стрелку вверх (рис. 7)
В следующем меню (тип инстанса) определить объем выделяемых виртуальной машине вычислительных ресурсов. Для этого нужно выбрать один из предопределённых типов инстансов (например small), и нажать справа от него стрелку вверх (рис. 8).
В меню сети выбрать нужную вам сеть, к которой будет подключена виртуальная машина (наличие сети было проверено в п.1). Если в инфраструктуре доступна только одна сеть, она будет выбрана автоматически, и выбирать ничего не нужно. (рис. 9)
Затем перейти к меню Ключевая пара, выбрать созданную ключевую пару, и нажать справа от неё стрелку вверх. (рис. 10)
После выполнения всех действий — нажать справа снизу кнопку «запустить инстанс» для создания и запуска виртуальной машины.
5. Настройка правил безопасности.
В открывшемся меню добавить правило для входящего трафика (рис. 12)
В открывшемся меню добавления правил (рис. 13), добавить правило для порта 80(tcp) Для этого выбрать:
Правило: «Настраиваемое правило TCP»
Направление: Входящий трафик
Порт: 80
Формат записи подключаемого диапазона адресов: CIDR
Сам подключаемый диапазон адресов: 0.0.0.0/0
Последняя запись означает разрешение подключения с любого адреса
После заполнения всех полей нажать кнопку «Добавить» в правом нижнем углу.
То же самое необходимо сделать для всех остальных портов.
6. Узнать адрес виртуальной машины.
7. Подключиться к ВМ по ssh
Открыть расположение сохраненного ключа, и два раза нажать на него, для запуска помощника авторизации pagent (pagent откроется в трее рабочего стола, пользователь не увидит запуск никаких приложений на рабочем столе) Запустить putty Открыть меню connection -> SSH -> Auth и в открывшемся меню в поле private key for authentication выбрать путь к сгенерированному ключу (рис. 16)
Открыть заново вкладку session, ввести адрес нашей ВМ и нажать Open (рис. 17)
В открывшемся окне терминала ввести имя пользователя cloudadmin. Это позволит получить удалённый доступ к вашей виртуальной машине.
Практическое задание №3.Создание сервиса облачного хранилища
Создание облачного сервиса.
Необходимо войти в панель управления облачной платформой – https://cloud.resds.ru/
В панели управления платформой необходимо выбрать проект [№ группы]-[№ бригады]:sandbox
1. Создание виртуального сервера.
Создать новый виртуальный сервер, на базе которого будет произведено создание образа собственного сервиса.
При создании сервиса задать образ - Ubuntu-20-Installer, при этом не создавая новый образ, и
используя имеющийся для установки необходимых компонентов сервера (рис. 1).
Тип инстанса выбрать Small
Выбрать сеть с внешним подключением (external-net)
После выбора сети появится возможность запуска инстанса - нажать «запустить инстанс» (справа
снизу).
-
Необходимо создать виртуальный диск, который будет являться образом нового сервиса. Для этого слева в панели выбрать меню – Диски -> Диски -> Создать диск (рис. 2)
Рис. 2 – создание диска. -
В появившемся меню задать имя диска и размер (20GB) и нажать – создать диск( рис. 3) Все
Рис. 3
6. Когда диск создан, необходимо подключить его к виртуальному серверу, на котором планируется создание нового сервиса. Для этого в раскрывающемся меню справа от нового диска выбрать «управление подключением дисков», а в открывшемся меню выбрать виртуальный сервер, к которому его необходимо подключить. (рис. 4)
-
Дальше можно переходить в меню установки нового сервиса. Для этого необходимо вернуться в меню инстансы(слева), и нажать на имя нашего нового инстанса, созданного в пункте 2. После этого необходимо открыть консоль этого инстанса, на вкладке – консоль. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки сервисов.
-
В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: вверх-вниз – для перемещения фокуса выделения по пунктам меню, enter – для нажатия на необходимый пункт, пробел – для выбора пунктов в меню со списком выбора, Tab – для переключения между группами пунктов выбора.
-
в первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – enter.
-
В следующем меню оставить английскую расскладку клавиатуры и нажать готово
-
В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать готово
-
В меню ввода адреса прокси сервера оставить пустым и нажать – готово
-
В в меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
-
В в меню настройки дисковых устройств убедиться, что выбран диск на 20 гигабайт (созданный в пункте 5), и если он и выбран – нажать готово (рис. 5)
Рис. 5 -
в меню детальной настройки диска оставить всё без изменений и нажать – готово (в появившемся окне с предупреждением – нажать продолжить)
-
заполнить все поля имени пользователя и пароля (рис. 6).
Server name | Ваше имя | Имя пользователя | Пароль |
---|---|---|---|
cloudstorage | labuser | labuser | labpass1! |
- установить OpenSSH server. Для этого в меню выбора при мигающем курсоре нажать – пробел – рис. 7
- В меню выбора функций выбрать nextcloud и нажать пробел. (рис. 8) После того, как выбор сделан – нажать готово.
Если всё было сделано корректно, установка должна успешно начаться. Когда установка дойдёт до «downloading and installing security update», можно удалять инстанс, так как эти компоненты не обязательны, а их установка может занять длительное время (рис. 9).
Для удаления необходимо в правом верхнем меню инстанса выбрать – удалить инстанс (рис. 10).
Теперь, когда виртуальный сервер удалён, можно приступать к развёртыванию собственного сервиса.
Развертывания из образа
В предыдущем шаге был подготовлен образ для развёртывания из него виртуального сервиса. Образ хорошо использовать по той причине, что его можно один раз создать, а потомиспользовать при необходимости развернуть конкретное приложение.
- необходимо сделать диск образа загрузочным. Для этого перейти в меню диски – диски – образ – редактировать диск (рис. 11)
- При выборе источника диска выбрать меню диск, и выбрать созданный на предыдущих этапах диск для развёртывания (рис. 13)
Выбрать тип виртуального сервера – small, и в качестве сети выбрать external-net
- После выборы сети – нажать запустить инстанс – всё, сервис готов, осталось дождаться, пока он запустится и подключиться к нему.
- Для подключения – в браузере набрать адрес виртуального сервиса (рис. 14).
- После подключения в браузере - задать логин и пароль администратора системы (можно использовать labuser и labpass1!), снять опцию – установить рекомендуемые приложения и нажать – завершить установку (рис. 15)
- После завершения настройки облачного сервиса вы сможете начать им пользоваться, он будет полностью под вашим контролем. Все файлы будут в меню файлы, вы сможете как загрузить их через браузер с вашего локального компьютера просто перетащив их, так и скачать их с облака.
P.S.
Nextcloud так же имеет приложения для различных платформ:
Для компьютера
Для android
Для iOS
При установке этого приложения вам нужно будет ввести адрес вашего сервиса, ваш логин, и ваш пароль который вы задали на этапе 6
Практическое задание №4.Wireguard
Для выполнения практических занятий необходимо переключиться на проект [GROUP]:[team]-lab:sandbox.
Пользовательская установка wireguard
Для начала надо развернуть новый инстанс (при ограничении ресурсов может потребоваться удалить все предыдущие инстансы) так, как это было сделанно в первой практической работе.
Зайти в режим привилегированного пользователя
sudo su
установить нужные пакеты:
apt update
apt install -y wireguard qrencode
Настройка системы
Разрешить перенаправление сетевых пакетов на уровне ядра. Для этого откройте файл /etc/sysctl.conf и добавьте в конец такие строки:
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию:
sysctl -p
Генерация ключей сервера
Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке. Так же полученный ключ можно записать в переменную окружения:
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key
Ключи созданы, утилита tee запишет их в файл, а также выведет на экран, что очень удобно для сохранения значения в переменную
Генерация ключей клиента
Аналогичным образом создаём ключи для клиента. Команда та же:
wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key
Конфигурационный файл сервера
Конфигурационный файл сервера необходимо разместить по пути /etc/wireguard/wg0.conf и заполнить следующим образом(обратить внимание, что значение ключей в файле необходимо заменить):
vi /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = “содержимое файла server_private.key”
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
MTU = 1420
[Peer]
PublicKey = “содержимое файла client_public.key”
AllowedIPs = 10.10.10.2/32
Файл разделен на две секции:
- Interface - настройка сервера;
- peer - настройка клиентов, которые могут подключаться к серверу, секций Peer может быть несколько.
В данном случае будет настроен сервер WireGuard для работы с IPv4, со следующими основными параметрами:
- Address - адрес сервера в сети VPN;
- ListenPort - порт, на котором будет ожидать подключения WireGuard;
- PrivateKey - приватный ключ сервера, сгенерированный ранее;
- PostUp - команда, которая выполняется после запуска сервера. В данном случае включается поддержка MASQUERADE для интерфейса enp0s8, а также разрешается прием пакетов на интерфейсе wg0. Сетевые интерфейсы вам придется заменить на свои.
- PostDown - выполняется после завершения работы WireGuard, в данном случае удаляет все правила, добавленные в PostUp.
Секции Peer содержат настройки клиентов, которые могут подключится к серверу:
- PublicKey - публичный ключ клиента, сгенерированный ранее;
- AllowedIPs - IP адрес, который может взять клиент. Обратите внимание, маска для IPv4 должна быть 32.
Теперь можно переходить к созданию конфигурационного файла непосредственно для клиента.
Конфигурационный файл клиента Конфигурационный файл клиента будет выглядеть примерно так:
vi client.conf
[Interface]
PrivateKey = “содержимое файла client_private.key”
Address = 10.10.10.2
DNS = 172.17.1.10
MTU = 1384
[Peer]
PublicKey = “содержимое файла server_public.key”
Endpoint = “ip адрес вашего инстанса”:51820
AllowedIPs = 0.0.0.0/0
Обратите внимание, что все ключи мы генерируем на сервере, а затем уже скидываем конфигурационный файл клиента на компьютер, который надо подключить к сети. Рассмотрим подробнее что за что отвечает:
- PrivateKey - приватный ключ клиента, сгенерированный ранее;
- Address - IP адрес интерфейса wg0 клиента;
- DNS - серверы DNS, которые будут использоваться для разрешения доменных имён;
- PublicKey - публичный ключ сервера, к которому надо подключится.
- Endpoint - здесь надо указать IP адрес сервера, на котором установлен WireGuard и порт;
- AllowedIPs - IP адреса, трафик с которых будет перенаправляться в сеть VPN, в данном примере выбраны все адреса.
Запуск сервера
Для запуска сервера используйте такую команду:
sudo systemctl start wg-quick@wg0
С помощью systemd можно настроить автозагрузку интерфейса:
sudo systemctl enable wg-quick@wg0
Подключение клиента
Вывести в консоль qr код, для подключения к vpn. Подключаться к ВПН с использованием клиента wireguard с мобильного телефона Для этого в консоли сгенерировать qr код:
qrencode -t ansiutf8 < client.conf
Далее необходимо проверить, что установленный сервер работает.
Инструкция по проверке подключения находится в конце данного руководства.
Установка wireguard из готового контейнера
Контейнер сам по себе является операционной системой минимального размера, с установленным внутри необходимым программным обеспечением. Контейнеры могут быть преднастроенными, и всё, что необходимо с ними сделать, это установить, передав нужные аргументы. Для работы с контейнерами чаще всего используются docker контейнеры, настроенные на необходимый режим работы путём передачи в них переменных окружения.
Перед установкой Docker нужно выполнить все необходимые настройки системы.
Установка Docker
Docker является набором утилит, для работы с контейнерами. Установку лучше всего выполнять из репозиториев самого Docker. Для начала необходимо установить набор утилит, помогающих работать со сторонними репозиториями.
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
Далее необходимо скачать ключи доступа к репозиториям (одной командой):
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
После этого необходимо добавить нужные репозитории (одной командой):
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Добавив репозитории, можно установить все необходимые пакеты
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io nftables
Запуск контейнера
Как только все необходимые приготовления сделаны, необходимо запустить контейнер с нужными параметрами (одной командой):
sudo docker run -ti -d --restart=always --network host \
--entrypoint "/wireguard-ui" -v /tmp/wireguard-ui:/data \
--privileged embarkstudios/wireguard-ui:latest \
--data-dir=/data --wg-listen-port=51820 \
--wg-endpoint="«ip адрес вашего виртуального сервера»:51820" \
--wg-allowed-ips=0.0.0.0/0 --wg-dns="172.17.1.10" \
--wg-device-name="wg0" --listen-address=":80" \
--nat --nat-device="eth0" --client-ip-range="10.0.8.1/24"
Настройка VPN тоннелей
Как только контейнер запущен, необходимо подключиться к web интерфейсу VPN сервера для того, чтобы добавить клиентов для подключения. Для этого необходимо открыть в браузере адрес:
http://«ip адрес вашего виртуального сервера»
В открывшемся окне нажать + в правом нижнем углу
В появившемся окне ввести имя клиента и нажать create
Клиент для подключения создан, так же создан конфигурационный файл для клиента и QR код, по которому можно скачать содержимое этого конфигурационного файла
После создания клиента VPN сервер готов к подключениям внешних клиентов, и можно переходить к проверке.
Автоматизация развёртывания облачного сервиса.
Для автоматического развёртывания облачного сервиса, необходимо при создании виртуальной машины дополнительно указать скрипт запуска и развёртывания необходимых сервисов. Для развёртывания этого сервиса необходимо создать скрипт, запускающий контейнер.
Добавлять в контейнер установку Docker не нужно, так как вы будете запускать из виртуального инстанса с предустановленным и запущенным Docker
Создание преднастроенной виртуальной машины
Необходимо создать виртуальную машину(в данной практической работе необходимо использовать образ ubuntu-server-20:docker), дополнительно заполнив раздел конфигурация
В разделе конфигурация в текстовое поле ввести скрипт, автоматизирующий установку и развёртывание облачного сервиса.
Сам скрипт автоматизации должен включать в себя запуск wireguard контейнера, и запись необходимых параметров в системные файлы.
Пример конфига
#!/bin/bash
cat << EOF | sudo tee -a /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
EOF
sudo sysctl -p
ip=$(ip a | grep 172.17 | awk '{print $2}' | awk -F "/" '{print $1}')
sudo docker run -ti -d -p 80:80 -p 51820:51820 --restart=always --network host --entrypoint "/wireguard-ui" -v /tmp/wireguard-ui:/data --privileged embarkstudios/wireguard-ui:latest --data-dir=/data --wg-listen-port=51820 --wg-endpoint="$ip:51820" --wg-allowed-ips=0.0.0.0/0 --wg-dns="172.17.1.10" --wg-device-name="wg0" --listen-address=":80" --nat --nat-device="eth0" --client-ip-range="10.0.8.1/24"
sudo reboot -h now
После запуска виртуальной машины с указанным скриптом необходимо дождаться запуска виртуальной машины и находящихся на ней сервисов.
Настройка VPN тоннелей
Как только контейнер запущен, необходимо подключиться к web интерфейсу VPN сервера для того, чтобы добавить клиентов для подключения. Для этого необходимо открыть в браузере адрес:
http://«ip адрес вашего виртуального сервера»
В открывшемся окне нажать + в правом нижнем углу
В появившемся окне ввести имя клиента и нажать create
Клиент для подключения создан, так же создан конфигурационный файл для клиента и QR код, по которому можно скачать содержимое этого конфигурационного файла
После создания клиента VPN сервер готов к подключениям внешних клиентов, и можно переходить к проверке.
Проверка
Для начала необходимо установить клиент для подключения к VPN на мобильный телефон:
Android | IOS |
---|---|
Проверку необходимо выполнить со своего персонального устройства. Для начала убедиться, что вы работаете из сети СПбГУТ (Необходимо быть подключенным к WiFi сети) Перед подключением к VPN серверу необходимо проверить свой текущий ip адрес, под которым вас идентифицируют внешние службы. Сделать это можно открыв сайт ifconfig.resds.ru. На этой странице будет показано, c каким ip адресом вы обращайтесь как к этой странице.
Для проверки работоспособности VPN сервера необходимо к нему подключиться, и проверить, изменился ли ваш адрес, под которым вы обращаетесь к внешним службам. Если задание практической части было сделано правильно, то вы должны обращаться к внешним службам от адреса вашего VPN сервера.
Для подключения к VPN серверу необходимо:
- Открыть скачанное приложение WireGuard
- Нажать Add a tunnel для добавления VPN тоннеля
- Выбрать Create from QR code
- Отсканировать QR код с настройками вашего тоннеля
- В появившемся меню ввести произвольное имя тоннеля и нажать Save
- Подключиться к созданному тоннелю, нажав на переключатель в списке подключений Теперь снова необходимо открыть сайт ifconfig.resds.ru. Если значения изменились, можно сделать вывод о том, что ваш трафик идёт через сервер WireGuard
В случае возникновения проблем у WireGuard нет подробных логов, где можно было бы посмотреть какая ошибка произошла, а причин проблем может быть очень много. Чаще всего — это несоответствующие ключи, закрытый порт или неверный адрес сервера. Для исправления этих ошибок необходимо заново проверить все выполненные настройки.
Практическое задание №5-1. Запуск кластера Ceph
Схема виртуального лабораторного стенда
Для работы с облачной платформой необходимо прочитать инструкцию.
Переключиться на проект [GROUP]:[team]-lab:sandbox.
Подготовка системы
Запуск сети
Создание и настройка маршрутизатора
- Необходимо перейти в раздел
Сеть
, в пунктеСети
, у вас должна быть доступна сеть external-net, вторую сеть необходимо создать самостоятельно. Название для сети выбираем произвольно, напримерmy-internal-net
. - Создаем подсеть в этой сети аналогично скриншоту ниже:
Создание и настройка портов для инстансов
- Заходим в созданную ранее сеть ->
Порты
:
Создание инстансов
-
Запустить 3 инстанса с характеристиками:
- Имена инстансов: ceph-01, ceph-02, ceph-03;
- Источник: Образ Ubuntu-server-20.04;
- Тип инстанса: small;
- Сети: external_net;
- Сетевые порты: port-ceph-1, port-ceph-2, port-ceph-3 для каждого инстанса соответственно.
-
Создать 3 диска по 2 Гб, подключить по одному диску на каждый инстанс. Список подключенных дисков может иметь следующий вид:
-
На каждом инстансе добавить записи в файл /etc/hosts (после подстановки адресов, кавычек быть не должно):
192.168.0.21 ceph-01 192.168.0.22 ceph-02 192.168.0.23 ceph-03 "внешний адрес узла #1" ext-ceph-01 "внешний адрес узла #2" ext-ceph-02 "внешний адрес узла #3" ext-ceph-03
-
Создать пару ключей на ceph-01 для соединения между инстансами(вводить никакие значения не требуется, на все вопросы оставить значение по умолчанию и нажать Enter)
ssh-keygen
Далее задать пароли для пользователя cloudadmin на узлах ceph-01,ceph-02,ceph-03
sudo passwd cloudadmin
пароль может быть любой
и скопировать публичный ключ ceph-01 на каждый инстанс(в том числи и на сам ceph-01 для автоматизации):
ssh-copy-id ceph-01
на второй:
ssh-copy-id ceph-02
И на третий:
ssh-copy-id ceph-03
Запуск кластера Ceph
Установка Ceph
На данном этапе необходимо установить пакет ceph
на каждый узел.
Для этого нужно предварительно добавить ключ безопасности репозитория в список
доверенных и добавить репозиторий для скачивания указанных пакетов.
-
Для этого на каждом узле выполнить следующие команды:
sudo apt update sudo apt install -y ca-certificates wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - sudo apt-add-repository 'deb https://download.ceph.com/debian-quincy/ focal main' sudo apt update && sudo apt install ceph ceph-mds -y
- Либо использовать скрипт:
Скрипт для запуска на ceph-01
#!/bin/bash for NODE in ceph-01 ceph-02 ceph-03 do ssh $NODE \ "sudo apt update; \ sudo apt install -y ca-certificates; \ wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -; \ sudo apt-add-repository 'deb https://download.ceph.com/debian-quincy/ focal main'; \ sudo apt update && sudo apt install ceph ceph-mds -y" done
- Либо использовать скрипт:
-
Проверить статус установки можно с помощью команды:
sudo ceph -v
Запуск демонов ceph-mon, ceph-mgr, ceph-osd, ceph-mds
Подготовка к запуску демонов
На узле ceph-01 необходимо выполнить следующие действия:
-
Получить уникальный идентификатор для кластера (можно с помощью команды
uuidgen
):
ad56ab6d-7f7a-4ee4-8b02-9c7ef1ddb438
- используется в качетсве примера -
Создать файл конфигурации для кластера по пути
/etc/ceph/ceph.conf
. Необходимо вставить свои значения параметров: fsid, адреса интерфейсов внешней сети.
vi /etc/ceph/ceph.conf
:
[global]
fsid = ad56ab6d-7f7a-4ee4-8b02-9c7ef1ddb438
mon initial members = ceph-01, ceph-02, ceph-03
mon host = ext-ceph-01, ext-ceph-02, ext-ceph-03
cluster network = 192.168.0.0/24
public network = 172.17.32.0/19
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd pool default size = 3
osd pool default min size = 2
osd pool default pg num = 64
osd pool default pgp num = 64
osd crush chooseleaf type = 1
- Разберём параметры конфигурации:
-
fsid
- идентификатор кластера -
mon initial members
- имена узлов стартовых мониторов -
mon host
- адреса стартовых мониторов -
cluster network
- сеть кластера в формате CIDR, в которой будут передаваться heartbeat-сигналы, реплики данных между демонами OSD -
public network
- внешняя сеть для взаимодействия с клиентами кластера -
auth cluster/service/client required
- включение авторизации между демонами кластера и подключаемымиклиентами -
osd pool default size
- количество реплик по умолчанию -
osd pool default min size
- минимальное количество записанных реплик для объектов, чтобы подтвердить операцию ввода-вывода клиенту -
osd pool default pg num
- количество групп размещения по умолчанию для пула -
osd pool default pgp num
- количество групп размещения по умолчанию для размещения пула. PG и PGP должны быть равны -
osd crush chooseleaf type
- максимальный уровень размещения кластера (при значении больше 1 имеется возможность создания групп узлов, таким образом можно разделить иерархию узлов на стойки, ЦОДы и другие физически разнесённые группы)
-
-
Создать связку ключей для своего кластера и сгенерировать секретный ключ монитора. Также создать связку ключей администратора,
client.admin
пользователя и добавить пользователя в связку ключей. Создать связку ключейbootstrap-osd
,client.bootstrap-osd
пользователя и добавить пользователя в связку ключей:sudo ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring \ --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' \ --cap mds 'allow *' --cap mgr 'allow *' sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring \ --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' \ --cap mgr 'allow r'
-
Добавить сгенерированные ключи в связку
ceph.mon.keyring
:sudo ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring sudo ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
-
Сгенерировать карту мониторов, используя имена узлов, внешние адреса (записи из файла
/etc/hosts
здесь не работают) и FSID. Сохранить как /tmp/monmap:monmaptool --create --fsid ad56ab6d-7f7a-4ee4-8b02-9c7ef1ddb438 \ --add ceph-01 "внешний адрес узла #1" --add ceph-02 "внешний адрес узла #2" \ --add ceph-03 "внешний адрес узла #3" /tmp/monmap
Запуск ceph-mon
-
Необходимо скопировать файлы
/etc/ceph/ceph.conf
,/etc/ceph/ceph.client.admin.keyring
,/tmp/monmap
,/tmp/ceph.mon.keyring
,/var/lib/ceph/bootstrap-osd/ceph.keyring
с ceph-01 на ceph-02 и ceph-03.-
Примеры выполнения данного пункта:
Пошаговые действия с описанием
-
Создадим папку
/tmp/ceph_files
и скопируем в неё все необходимые файлы:mkdir /tmp/ceph_files sudo cp /etc/ceph/ceph.conf /tmp/ceph_files/ceph.conf sudo cp /etc/ceph/ceph.client.admin.keyring /tmp/ceph_files/ceph.client.admin.keyring sudo cp /tmp/monmap /tmp/ceph_files/monmap sudo cp /tmp/ceph.mon.keyring /tmp/ceph_files/ceph.mon.keyring sudo cp /var/lib/ceph/bootstrap-osd/ceph.keyring /tmp/ceph_files/ceph.keyring
-
Далее добавим общие права на чтение для всех файлов в папке и отправим эти файлы на ceph-02 и ceph-03. Удалим созданную ранее папку:
sudo chmod 644 /tmp/ceph_files/* scp -r /tmp/ceph_files/ ceph-02:~ scp -r /tmp/ceph_files/ ceph-03:~ sudo rm -rf /tmp/ceph_files
-
На ceph-02 и ceph-03 выполняем следующие команды (возвращаем файлам их исходные права, копируем их по нужным путям и удаляем полученные файлы:
cd ~/ceph_files sudo chmod 600 ceph.client.admin.keyring ceph.mon.keyring ceph.keyring sudo cp ceph.conf /etc/ceph/ceph.conf sudo cp ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring sudo cp monmap /tmp/monmap sudo cp ceph.mon.keyring /tmp/ceph.mon.keyring sudo cp ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring cd .. rm -rf ceph_files
Cкрипт для запуска на ceph-01
#!/bin/bash mkdir /tmp/ceph_files sudo cp /etc/ceph/ceph.conf /tmp/ceph_files/ceph.conf sudo cp /etc/ceph/ceph.client.admin.keyring /tmp/ceph_files/ceph.client.admin.keyring sudo cp /tmp/monmap /tmp/ceph_files/monmap sudo cp /tmp/ceph.mon.keyring /tmp/ceph_files/ceph.mon.keyring sudo cp /var/lib/ceph/bootstrap-osd/ceph.keyring /tmp/ceph_files/ceph.keyring sudo chmod 644 /tmp/ceph_files/* scp -r /tmp/ceph_files/ ceph-02:~ scp -r /tmp/ceph_files ceph-03:~ sudo rm -rf /tmp/ceph_files for NODE in ceph-02 ceph-03 do ssh $NODE \ "cd ~/ceph_files; \ sudo chmod 600 ceph.client.admin.keyring ceph.mon.keyring ceph.keyring; \ sudo cp ceph.conf /etc/ceph/ceph.conf; \ sudo cp ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring; \ sudo cp monmap /tmp/monmap; \ sudo cp ceph.mon.keyring /tmp/ceph.mon.keyring; \ sudo cp ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring; \ cd ..; \ rm -rf ceph_files" done
-
-
-
Далее создадим каталог для данных мониторов на узлах. Заполним демоны монитора картой мониторов и набором ключей. Это можно сделать с помощью следующих команд на каждом хосте:
sudo chown ceph:ceph /tmp/ceph.mon.keyring sudo -u ceph mkdir /var/lib/ceph/mon/ceph-$HOSTNAME sudo -u ceph ceph-mon --mkfs -i $HOSTNAME \ --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring sudo systemctl enable ceph-mon@$HOSTNAME --now
- Либо использовать скрипт:
Скрипт для запуска на ceph-01
#!/bin/bash for NODE in ceph-01 ceph-02 ceph-03 do ssh $NODE \ "sudo chown ceph:ceph /tmp/ceph.mon.keyring; \ sudo -u ceph mkdir /var/lib/ceph/mon/ceph-$NODE; \ sudo -u ceph ceph-mon --mkfs -i $NODE \ --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring; \ sudo systemctl enable ceph-mon@$NODE --now" done
- Либо использовать скрипт:
-
Включим протокол
MESSENGER V2
, отключим небезопасное использование клиентами глобальных идентификаторов и установим вывод предупреждений о малом свободном пространстве на основном диске хоста при остакте в 10% (иначе без этих параметров кластер может иметь статус HEALTH_WARN). Также установим параметр, позволяющий удалять пулы, в значениеtrue
:sudo ceph mon enable-msgr2 sudo ceph config set mon auth_allow_insecure_global_id_reclaim false sudo ceph config set mon mon_data_avail_warn 10 sudo ceph config set mon mon_allow_pool_delete true
-
Так как ещё не добавлено никаких устройств хранения, то в выводе состояния нас интересует только образовавшийся кворум мониторов:
sudo ceph -s
Запуск ceph-mgr
На каждом узле, где вы запускаете демон ceph-mon, вы также должны настроить демон ceph-mgr. Сначала
создадим ключ аутентификации для демона, поместим этот ключ в путь
/var/lib/ceph/mgr/ceph-$HOSTNAME/keyring
и запустим демон ceph-mgr.
-
Для этого небоходимо выполнить данные действия на каждом хосте:
sudo ceph auth get-or-create mgr.$HOSTNAME mon 'allow profile mgr' osd 'allow *' mds 'allow *' sudo ceph auth get-or-create mgr.$HOSTNAME > /tmp/mgr.admin.keyring sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-$HOSTNAME sudo cp /tmp/mgr.admin.keyring /var/lib/ceph/mgr/ceph-$HOSTNAME/keyring sudo chown -R ceph. /var/lib/ceph/mgr/ceph-$HOSTNAME sudo systemctl enable --now ceph-mgr@$HOSTNAME
- Либо использовать скрипт:
Скрипт для запуска на ceph-01
#!/bin/bash for NODE in ceph-01 ceph-02 ceph-03 do MGR_PATH=/var/lib/ceph/mgr/ceph-$NODE; ssh $NODE \ "sudo ceph auth get-or-create mgr.$NODE \ mon 'allow profile mgr' osd 'allow *' mds 'allow *'; \ sudo ceph auth get-or-create mgr.$NODE > /tmp/mgr.admin.keyring; \ sudo -u ceph mkdir $MGR_PATH; \ sudo cp /tmp/mgr.admin.keyring $MGR_PATH/keyring; \ sudo chown -R ceph. $MGR_PATH; \ sudo systemctl enable --now ceph-mgr@$NODE" done
- Либо использовать скрипт:
-
На данном этапе мы можем увидеть статус запуска демонов менеджеров:
sudo ceph -s
Запуск ceph-osd
Ceph предоставляет ceph-volume
утилиту, которая может подготовить логический том, диск или раздел
для использования с Ceph. Утилита ceph-volume
создает идентификатор OSD путем увеличения
индекса. Кроме того, ceph-volume
добавит новый OSD в карту CRUSH хоста.
-
На каждом хосте выполнить:
sudo ceph-volume lvm create --data /dev/vdb
- Либо использовать скрипт:
Скрипт для запуска на ceph-01
#!/bin/bash for NODE in ceph-01 ceph-02 ceph-03 do ssh $NODE "sudo ceph-volume lvm create --data /dev/vdb" done
- Либо использовать скрипт:
-
На данном этапе кластер должен иметь статус HEALTH_OK:
sudo ceph -s
-
Также подключенные OSD можно получить с помощью команды:
sudo ceph osd tree
Запуск услуг кластера
Создание пула и блочного устройства
-
Создадим пул
rbd
и инициализируем его:sudo ceph osd pool create rbd 32 sudo rbd pool init rbd
-
Получить список созданных пулов с помощью команды:
sudo ceph osd pool ls
-
Создать блочное устройство в новом пуле:
sudo rbd create --size 10G --pool rbd rbd01
Проверка
-
Подключаем созданное устройство к ceph-01:
sudo rbd map rbd01
-
Получить список подлючённых устройств можно с помощью команды:
sudo rbd showmapped
-
Установим файловую систему на подключенное устройство и примонтируем его к каталогу
/mnt/ceph_rbd
:sudo mkfs.xfs /dev/rbd0 sudo mkdir /mnt/ceph_rbd sudo mount /dev/rbd0 /mnt/ceph_rbd/
-
На ceph-01 создать файл с произвольным текстом и поместить его в каталог
/mnt/ceph_rbd
. Затем отмонтировать блочное устройство:echo "my text for ceph rbd" | sudo tee /mnt/ceph_rbd/rbd.txt sudo umount /dev/rbd0 sudo rbd unmap /dev/rbd/rbd/rbd01
-
На ceph-02 подключить использованное ранее блочное устройство и примонтировать его к каталогу
/mnt/ceph_rbd
:sudo rbd map rbd01 sudo mkdir /mnt/ceph_rbd sudo mount /dev/rbd0 /mnt/ceph_rbd/
-
Проверить содержимое подключенного блочного устройства:
ls /mnt/ceph_rbd/ cat /mnt/ceph_rbd/rbd.txt
-
Отмонтировать блочное устройство и удалить его, удалить пул:
sudo umount /dev/rbd0 sudo rbd unmap /dev/rbd/rbd/rbd01 sudo rbd rm rbd01 -p rbd sudo ceph osd pool delete rbd rbd --yes-i-really-really-mean-it
Практическое задание №5-2. Установка клиентской ВМ и настройка динамической миграции на базе Corosync/Pacemaker
Для выполнения практических занятий необходимо переключиться на проект [GROUP]:[team]-lab:sandbox.
Схема виртуального лабораторного стенда
Запуск ВМ с использованием Ceph RBD
Интеграция Ceph и libvirt
Установка libvirt
sudo apt install -y qemu-kvm virtinst libvirt-clients libvirt-daemon-system
Добавление пула Ceph в libvirt
-
Во-первых, нам нужно создать пул Ceph OSD специально для использования хранилища kvm, qemu, libvirt:
sudo ceph osd pool create libvirt-pool 64 64 sudo rbd pool init libvirt-pool
-
Во-вторых, нам нужен пользователь Ceph для манипулирования только что созданным пулом.
sudo ceph auth get-or-create "client.libvirt" mon "profile rbd" osd "profile rbd pool=libvirt-pool"
Выполнить пункты 3-6 на каждом узле
-
Нам нужно добавить файл с секретом libvirt для аутентификации.
uuidgen
->e6ca4cff-bf4f-4444-9089-8bd1304b3500
- для libvirt секрета, использовать один для всех хостов
sudo vi /tmp/libvirt-secret.xml
:<secret ephemeral='no' private='no'> <uuid>e6ca4cff-bf4f-4444-9089-8bd1304b3500</uuid> <usage type='ceph'> <name>client.libvirt secret</name> </usage> </secret>
-
Встраиваем ключ авторизации пользователя Ceph в файл с секретом с указанным uuid.
sudo virsh secret-define --file "/tmp/libvirt-secret.xml" sudo rm -f "/tmp/libvirt-secret.xml" sudo virsh secret-set-value --secret "e6ca4cff-bf4f-4444-9089-8bd1304b3500" \ --base64 "$(sudo ceph auth get-key client.libvirt)"
-
Нам также необходимо определить пул хранения RBD в libvirt. Сначала нам нужно создать файл определения пула хранения (вставить свои адреса внешних интерфейсов в теги host):
vi /tmp/libvirt-rbd-pool.xml
:<pool type="rbd"> <name>libvirt-pool</name> <source> <name>libvirt-pool</name> <host name='ext-ceph-01' port='6789' /> <host name='ext-ceph-02' port='6789' /> <host name='ext-ceph-03' port='6789' /> <auth username='libvirt' type='ceph'> <secret uuid='e6ca4cff-bf4f-4444-9089-8bd1304b3500'/> </auth> </source> </pool>
-
Теперь мы можем определить и запустить пул.
sudo virsh pool-define "/tmp/libvirt-rbd-pool.xml" sudo rm -f "/tmp/libvirt-rbd-pool.xml" sudo virsh pool-autostart "libvirt-pool" sudo virsh pool-start "libvirt-pool"
- Проверить доступность созданного пула:
sudo virsh pool-list
- Проверить доступность созданного пула:
Запуск ВМ
-
Скачать образ
cirros
и скопировать его по пути/tmp/cirros.img
wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img sudo cp cirros-0.5.1-x86_64-disk.img /tmp/cirros.img
-
Создать Ceph RBD для виртуальной машины:
sudo qemu-img convert -p -t none /tmp/cirros.img rbd:libvirt-pool/cirros sudo virsh pool-refresh libvirt-pool
- Проверить доступность созданного образа:
sudo virsh vol-list libvirt-pool
- Проверить доступность созданного образа:
-
Создать ВМ:
sudo virt-install --name Test-VM --graphics none \ --vcpus 1 --memory 128 --disk "vol=libvirt-pool/cirros" \ --import --autostart
-
Проверить работоспособность запущенной ВМ:
sudo virsh list --all sudo virsh console Test-VM
Настройка динамической миграции
Установка Pacemaker/Corosync
- На всех узлах нужно установить требуемые пакеты и запустить демон
pcsd
:sudo apt install pacemaker corosync pcs resource-agents sudo systemctl enable --now pcsd
Запуск кластера
-
Задать пароль пользователя
hacluster
на всех узлах (в примере используется парольpassword
):sudo passwd hacluster
-
Отредактировать раздел
nodelist
файла/etc/corosync/corosync.conf
(на одном из узлов):nodelist { node { name: ceph-01 nodeid: 1 ring0_addr: ceph-01 } node { name: ceph-02 nodeid: 2 ring0_addr: ceph-02 } node { name: ceph-03 nodeid: 3 ring0_addr: ceph-03 } }
-
С помощью pcs создать кластер (на одном из узлов):
sudo pcs host auth ceph-01 ceph-02 ceph-03 -u hacluster -p password sudo pcs cluster setup newcluster ceph-01 ceph-02 ceph-03 --force sudo pcs cluster start --all
-
Отключить fencing (в рамках работы он не рассматривается):
sudo pcs property set stonith-enabled=false
-
Включить автозапуск сервисов на всех трех машинах:
sudo systemctl enable pacemaker corosync
-
Просмотреть информацию о кластере и кворуме:
sudo pcs status sudo corosync-quorumtool
Создание ресурса
-
Создать дамп созданной ВМ и затем удалить её:
sudo virsh dumpxml Test-VM > vm_conf.xml sudo virsh undefine Test-VM sudo virsh destroy Test-VM
-
Скопировать дамп с ceph-01 на ceph-02 и ceph-03:
scp vm_conf.xml ceph-02:~ scp vm_conf.xml ceph-03:~
-
На ceph-01, ceph-02 и ceph-03 переместить файл в /etc/pacemaker/
sudo mv vm_conf.xml /etc/pacemaker/ sudo chown hacluster:haclient /etc/pacemaker/vm_conf.xml
-
Теперь добавить сам ресурс:
sudo pcs resource create test-vm VirtualDomain \ config="/etc/pacemaker/vm_conf.xml" \ migration_transport=tcp meta allow-migrate=true
-
Просмотреть список добавленных ресурсов:
sudo pcs status sudo pcs resource config test-vm
-
Проверить список виртуальных машин на узле, на котором запустился ресурс:
sudo virsh list --all
-
Проверить, что ресурс успешно запустился.
Настройка миграции
Выполнить действия на всех узлах
-
Необходимо отредактировать файл
/etc/libvirt/libvirtd.conf
:listen_tls = 0 listen_tcp = 1 auth_tcp = "none"
-
Отредактировать файл
/etc/default/libvirtd
:libvirtd_opts="--config /etc/libvirt/libvirtd.conf"
-
Запустить сокет
libvirt-tcp
:sudo systemctl stop libvirtd && sudo systemctl start libvirtd-tcp.socket
Миграция ресурса
-
Нужно переместить ресурс на
ceph-02
:sudo pcs resource move test-vm ceph-02
-
На ceph-02 посмотреть статус кластера, и проверить список запущенных гостевых машин можно следующими командами:
sudo pcs status sudo virsh list --all
-
Команда move добавляет ресурсу правило, заставляющее его запускаться только на указанном узле. Для того, чтобы очистить все добавленные ограничения - clear:
sudo pcs resource clear test-vm
Практическое задание №5-3. Ceph FS, Ceph Dashboard
Для выполнения практических занятий необходимо переключиться на проект [GROUP]:[team]-lab:sandbox.
Использование файловой системы Ceph
Запуск ceph-mds
Чтобы услуга Ceph FS работала для клиентов, необходимо запустить демон сервера метаданных (MDS). Для этого создадим папку для демона, пользователя Ceph и запустим службу ceph-mds.
- Запустить демоны MDS на хостах ceph-02, ceph-03:
sudo mkdir -p /var/lib/ceph/mds/ceph-$HOSTNAME sudo ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$HOSTNAME/keyring \ --gen-key -n mds.$HOSTNAME sudo chown -R ceph. /var/lib/ceph/mds/ceph-$HOSTNAME sudo ceph auth add mds.$HOSTNAME osd "allow rwx" mds "allow" mon "allow profile mds" \ -i /var/lib/ceph/mds/ceph-$HOSTNAME/keyring sudo systemctl enable --now ceph-mds@$HOSTNAME
- Либо использовать скрипт:
Скрипт для запуска на ceph-01
#!/bin/bash for NODE in ceph-02 ceph-03 do MDS_PATH=/var/lib/ceph/mds/ceph-$NODE; ssh $NODE \ "sudo mkdir -p $MDS_PATH; \ sudo ceph-authtool --create-keyring $MDS_PATH/keyring \ --gen-key -n mds.$NODE; \ sudo chown -R ceph. $MDS_PATH; \ sudo ceph auth add mds.$NODE osd 'allow rwx' mds 'allow' mon 'allow profile mds' \ -i $MDS_PATH/keyring; \ sudo systemctl enable --now ceph-mds@$NODE" done
- Либо использовать скрипт:
Создание файловой системы
На любом узле кластера необходимо выполнить следующие команды:
-
Чтобы запустить файловую систему ceph, нужно создать два пула: пул для данных и пул для метаданных:
sudo ceph osd pool create cephfs_data 64 sudo ceph osd pool create cephfs_metadata 64
-
Создадим файловую систему:
sudo ceph fs new cephfs cephfs_metadata cephfs_data
С помощью данных команд можно просмотреть статус файловой системы:
sudo ceph fs ls sudo ceph mds stat sudo ceph fs status cephfs
-
Создадим пользователя для подключения к файловой системе и запишем ключ пользователя в отдельный файл:
sudo ceph fs authorize cephfs client.fsclient / rw -o /etc/ceph/ceph.client.fsclient.keyring sudo ceph auth get-or-create-key client.fsclient -o /etc/ceph/fsclient.secret
-
Необходимо скопировать файлы
/etc/ceph/fsclient.secret
и/etc/ceph/ceph.client.fsclient.keyring
на остальные узлы.
Проверка
-
На каждом узле кластера необходимо выполнить следующие команды:
sudo mkdir /mnt/cephfs sudo mount -t ceph fsclient@.cephfs=/ /mnt/cephfs -o secretfile=/etc/ceph/fsclient.secret
-
Проверить статус монтирования:
df -hT | grep ceph
-
На ceph-01 создать файл с произвольным текстом и поместить его в каталог
/mnt/cephfs
:echo "my text for ceph fs" | tee /mnt/cephfs/test.txt
-
Проверить содержание файла на других узлах:
ls /mnt/cephfs/ cat /mnt/cephfs/test.txt
Динамическая миграция ВМ с использованием Ceph FS
-
Поместим образ
cirros
в созданную файловую систему:sudo cp /tmp/cirros.img /mnt/cephfs/cirros.img
-
Запустим ВМ:
sudo virt-install --name cirros --graphics none \ --vcpus 1 --memory 128 --disk "vol=libvirt-pool/cirros" \ --import --autostart
-
Проверим работоспособность запущенной ВМ:
sudo virsh list --all sudo virsh console cirros
-
Дальнейшие действия аналогичны пунктам "Создание ресурса", "Миграция ресурса" практики 5.2.
Запуск Ceph Dashboard
-
В работающем кластере Ceph панель мониторинга Ceph активируется с помощью:
sudo ceph mgr module enable dashboard
-
Сгенерируем и установим самоподписанный SSL сертификат:
sudo ceph dashboard create-self-signed-cert
-
Чтобы иметь возможность войти в систему, вам необходимо создать учетную запись пользователя и связать ее хотя бы с одной ролью. Ceph предоставляет набор предопределенных системных ролей, которые вы можете использовать. Чтобы создать пользователя
admin
с паролемpassword
и ролью администратора, можно воспользоваться следующими командами:echo "password" >> mypass sudo ceph dashboard ac-user-create admin -i mypass --force-password administrator rm mypass
-
В Openstack в группе безопасности добавить правило для порта 8443/tcp.
-
С помощью команды
sudo ceph mgr services
на одном из узлов кластера можно получить ссылки доступных сервисов. Пример вывода:{ "dashboard": "https://172.17.5.232:8443/" }