GitLab — Хранение кода и запуск пайплайнов¶
Репозитории в GitLab¶
Все репозитории хранятся в GitLab в группе project_k.
kolla-ansible— репозиторий, в котором хранятся плейбуки и роли Ansible от текущего релиза. Носит информативный характер и в жизненном цикле участия не принимает.kolla— репозиторий с исходным кодом для сборки образов docker для компонентов OpenStack. Носит информативный характер и в жизненном цикле участия не принимает.keystack— репозиторий, который содержит базовые файлы конфигурации со значениями параметров для сервисов, рекомендуемыми вендором.dib— репозиторий для сборки образов операционных систем.ci— репозиторий с базовыми скриптами и пайплайнами, которые используются для развёртывания окружений.deployments— группа, которая содержит набор репозиториев для создания и управления регионами/инсталляциями OpenStack, а также общие репозитории для всех площадок —baremetal,bifrostиbackup.baremetal— репозиторий для установки и базовой настройки операционных систем на физические серверы, которые участвуют в облаке.bifrost— репозиторий, который содержит код для запуска контейнера bifrost, используемого логикой baremetal.
Развёртывание компонентов¶
Для запуска развёртывания какого-либо компонента, выполните следующие действия:
Откройте веб-интерфейс развернутого GitLab.
Откройте проект project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В открывшемся окне добавьте параметры, например:
KOLLA_ARGS— укажите тег компонента, который необходимо развернуть и серверы для развёртывания. Например, для Cinder укажите-t cinder, а для первого Control-узла —--limit ctrl01. Можно указать несколько элементов через запятую без пробелов.KOLLA_ANSIBLE_DEPLOY_ACTION— выберитеdeploy.
Запустите пайплайн: New pipeline.
Запуск пайплайна из репозитория¶
Развёртывание компонентов opensearch/drs/adminui/prometheus/grafana/ha¶
Для развёртывания данных сервисов убедитесь в наличии соответствующих переменных в файле globals.d/REGION.yml в репозитории региона project_k / deployments / <имя региона>.
Если соответствующие переменные существуют и имеют значение yes, то компоненты будут установлены при развёртывании региона.
enable_grafana: "yes"
enable_prometheus: "yes"
enable_prometheus_alertmanager: "yes"
enable_drs: "yes"
enable_adminui: "yes"
enable_consul: "yes"
enable_opensearch: "no"
Если какие-то переменные отсутствуют или у них уставлено значение no, то их компоненты не будут развёрнуты.
При необходимости их можно отдельно указать при развёртывании. Для этого в переменных пайплайна укажите переменную со значением yes, например, enable_opensearch: yes. После этого выполните развёртывание с указанием компонента в KOLLA_ARGS, например, -t opensearch.
Более подробную информацию о специфике развёртывания отдельных компонентов смотрите в разделах документации этих компонентов.
Развёртывание компонентов, связанных с Neutron¶
Neutron — сетевая служба, бесконтрольное развёртывание которой приведёт к нарушению сетевой доступности облака, поэтому развёртывание этого компонента выполняется с предварительной подготовкой.
Развёртывание тега neutron на серверы с ролью Control обязательно выполняется с лимитом в один узел (KOLLA_ARGS: --limit ctrl01), затем после выполнения пайплайна можно указать лимит на оставшиеся два узла (KOLLA_ARGS: --limit ctrl02,ctrl03) и запустить пайплайн.
Развёртывание тега neutron на серверы с ролью Network выполняется в определённой последовательности:
Получите список L3-агентов и их идентификаторы:
$ openstack network agent list --agent-type l3
Выключите L3-агент на том узле, на который планируется внести изменения.
$ openstack network agent set --disable <l3 agent uuid>
Подождите 5 минут.
Запустите пайплайн с тегом
neutronи лимитом на тот сервер, на котором выключен L3-агент:
Параметры запуска пайплайна¶
Включите L3-агент на данном узле.
$ openstack network agent set --enable <l3_agent_uuid>
Подождите 30 минут, отслеживая сообщения в логах
/var/log/kolla/neutron/neutron-l3-agent.log. Дождитесь окончания сообщений синхронизации синков на сотни секунд.Повторите шаги выше для каждого L3-агента (для каждого Network-узла).