ShRun
Установка
Для сборки и использования shrun нужно иметь установленный docker, git, make и go (1.18).
В переменную PATH нужно добавить путь к директории $GOPATH/bin.
Клонируем репозиторий и собираем shrun.
git clone git@github.com:wmentor/shrun.git
cd shrun
make
Для обновления будет необходимо подтянуть изменения из репозитория и сделать make. Важно учитывать тот момент, что
после обновления возможно нужно будет также выполнить команды init/build.
Инициализация
shrun init
В конфигурационной директории создает Dockerfile-ы, sdmspec.json, rc.local. В качестве директории по умолчанию используется ~/.shrun (если ее нет,
то она будет создана при первом запуске). Для того чтобы поменять директорию по умолчанию нужно задать переменную окружения SHRDM_CONFIG_DIR.
Для получения информации о всех параметрах команды вызовите ее с ключем -h.
Получения необходимых образов докера
shrun pull
В результате будут синхронизованы имеджи для go, ubuntu, postgres.
Сборка образа Shardman
shrun build --build-basic --build-pg
Для докеров используется каталог ~/build (может быть ссылкой). Если нужно его сменить, то стоит задать переменную окружения SHRDM_DATA_DIR.
Если не задать ключи --build-basic и --build-pg, то будет только пересобран образ с новой обвязкой на базе последней сборки постгреса.
--build-basic нужен для пересборки всех базовых образов, которые используются для сборки постгреса, но сам постгрес при этом не собирается.
--build-pg указывает на то, что нужно пересобрать постгрес.
Обвязка пересобирается при любой конфигурации ключей.
Запуск кластера
shrun start --nodes count
Запускает кластер из заданного числа нод (по умолчанию выполняется shardmanctl init + shardmanctl nodes add).
Если ноды не нужно добавлять в кластер, то нужно добавить флаг --skip-node-add.
Собрать следующий кластер можно будет теперь только после остановки (даже если сборка прошла неуспешно).
В случае успешного запуска в build-каталоге будет создана директория /mntdata, которая будет подмонтирована ко всем запущенным контейнерам.
Запуск дополнительных нод
shrun nodes add -n count
Поднимает еще заданное число нод Shardman. При этом в кластер они автоматом не добавляются. Команда может
быть использована только после shrun start.
Удаление заданного числа нод Shardman
shrun nodes rm -n count
Удаляет заданное число нод Shardman или всех, если нод меньше чем заданное число. Если все ноды Shardman удалены
команда stop не выполняется т.к. еще остаются живые etcd-ноды.
Подключение к конкретное ноде
shrun shell -n node -u user
Коннектится к заданной ноде из-под указанного пользователя (по дефолту используется пользователь root и нода shrn1).
Остановка всех нод/сетей
shrun stop
Генерация документации по Shardman
shrun doc
Команда сгенерирует документацию по шардману и напечатает каталог, в который она была сохранена.