Подготовка общей конфигурации job развертывания#
Для подготовки общей конфигурции job развертывания необходимо заполнить следующие параметры:
nodeLabel: "pprb||efs" # Метка агента Platform V DevOps Tools (Jenkins), на котором будет выполняться job
configYamlPath: "data/idmc/templates/job_config.yaml" # Путь до файла конфигурации сущности инструмента Jenkins (Jenkins job) (файл должен располагаться в одном репозитории с job)
loadedConfigs: "scripts,base,system,connectorhost,departments,employees,focal,exchange,scim,soap,ngam" # Список загружаемых конфигураций
excludedObjects: "company" # Список исключаемых объектов при загрузке конфигураций
nexusCredentialsId: "tuz_prod" # УЗ в данном credentials должна иметь доступ на чтение ко всем перечисленным nexus
Секция подключения к Nexus-хранилищу (используется для выкачивания дистрибутива)#
nexusBase:
release:
urlNexus: "https://mycorp.domain.space/nexus-cd/repository" # URL репозитория релизных образов Nexus CD
repoName: "PROD" # Имя корневого каталога в репозитории
groupId: "PROD.idmc", # GroupID дистрибутива IDMC в репозитории
artifactId: "idmc-cfg", # ArtifactID дистрибутива с конфигурацией IDMC в репозитории
ci:
urlNexus: "https://mycorp.domain.space/nexus-ci/repository", # URL репозитория snapshot образов Nexus CI
repoName: "snapshot", # Имя корневого каталога в репозитории
groupId: "idmc", # GroupID дистрибутива IDMC в репозитории
artifactId: "idmc-cfg", # ArtifactID дистрибутива с конфигурацией IDMC в репозитории
Данные для доступа в Bitbucket для получения файлов стендозависимых параметров#
git:
credentialsId: "tuz_bb_ssh" # Имя секрета Platform V DevOps Tools (Jenkins) Credentials с сертификатом SSH для доступа к репозиторию в формате компонента Deploy tools (CDJE) в Bitbucket, созданному для IDMC
credentialsPwdId: "tuz_bb_pwd" # Имя секрета Platform V DevOps Tools (Jenkins) Credentials с логином и паролем для доступа к репозиторию в формате компонента Deploy tools (CDJE) в Bitbucket, созданному для IDMC
urlConfigs: "ssh://git@mycorp.domain.space:7999/installer/platform_v_idmc.git"
branch: "master"
type: "/bitbucket-cd" # Часть адреса для доступа к rest api bitbucket
Данные для доступа в Bitbucket для получения файлов шаблонов для загрузки из Bitbucket#
Данная секция закоментирована, является опциональной для использования необходимо раскоментировать
gitConfigs:
credentialsId: "tuz_bb_ssh" # Имя секрета Platform V DevOps Tools (Jenkins) Credentials с сертификатом SSH для доступа к репозиторию в формате компонента Deploy tools (CDJE) в Bitbucket, созданному для IDMC
credentialsPwdId: "tuz_bb_pwd" # Имя секрета Platform V DevOps Tools (Jenkins) Credentials с логином и паролем для доступа к репозиторию в формате компонента Deploy tools (CDJE) в Bitbucket, созданному для IDMC
urlConfigs: "ssh://git@mycorp.domain.space:7998/idmc/demo-idmc-configs.git"
branch: "develop"
type: "/bitbucket-cd" # Часть адреса для доступа к rest api bitbucket
Данный блок отвечает за общие параметры конфигурации Vault-хранилища#
vault:
engineVersion: 1
vaultCredentialId: "tuz-SecMan-IDMC" # Имя Platform V DevOps Tools (Jenkins) Credentials с логином и паролем ТУЗ для доступа компонента Deploy tools (CDJE) к Secret Management System
vaultNamespace: "PROD" # Имя пространства Secret Management System, в котором содержатся секреты IDMC
vaultUrl: "http://1.1.1.1:8200" # URL экземпляра Secret Management System, в котором содержатся секреты IDMC
Данные для доступа к Engine для загрузки файлов конфигураций#
midpoint:
dev1: # id стенда должен совпадать с названием папки в git репозитория конфигураций
vaultSecrets: "IDMC/KV" # Ключ пространства Secret Management System, в котором содержатся секреты IDMC
credentialsId: "admin-pwd" # Имя Platform V DevOps Tools (Jenkins) Credentials с логином и паролем ТУЗ для доступа компонента Deploy tools (CDJE) к экземпляру компонента IDMX
url: "http://idmx-engine-idmx-prod-1.myapps.stands.mydomain.space/midpoint" # URL адрес экземпляра IDMX
mtls: false # На стенде не используется mtls
type: "DEV"
dev2: # id стенда должен совпадать с названием папки в git репозитория конфигураций
vaultSecrets: "IDMC/KV" # Ключ пространства Secret Management System, в котором содержатся секреты IDMC
credentialsId: "admin-pwd" # Имя Platform V DevOps Tools (Jenkins) Credentials с логином и паролем ТУЗ для доступа компонента Deploy tools (CDJE) к экземпляру компонента IDMX
url: "https://idmx-engine-idmx-prod-1.myapps.stands.mydomain.space/midpoint" # URL адрес экземпляра IDMX
mtls: true # На стенде используется mtls
type: "DEV"
dev3: # id стенда должен совпадать с названием папки в git репозитория конфигураций
vaultSecrets: "IDMC/KV" # Ключ пространства Secret Management System, в котором содержатся секреты IDMC
credentialsId: "admin-pwd" # Имя Platform V DevOps Tools (Jenkins) Credentials с логином и паролем ТУЗ для доступа компонента Deploy tools (CDJE) к экземпляру компонента IDMX
url: "http://idmx-engine-idmx-prod-1.myapps.stands.mydomain.space/midpoint" # URL адрес экземпляра IDMX.
mtls: true # На стенде используется mtls
type: "DEV"
# По необходимости выполнить аналогичное конфигурирование для дополнительных стендов (например dev4, dev5...)
# В случае использования несколько ресурсов **AD/Exchange** c различными паролями подготовить дополнительные секции с указанием vaultKey до нужного секрета, например:
`dev1-AD-1:
vaultSecrets: "IDMC/KV/AD1"
credentialsId: "admin-pwd"
url: "http://idmx-engine-idmx-prod-1.myapps.stands.mydomain.space/midpoint"
mtls: false
dev1-AD-2:
vaultSecrets: "IDMC/KV/AD2"
credentialsId: "admin-pwd"
url: "http://idmx-engine-idmx-prod-1.myapps.stands.mydomain.space/midpoint"
mtls: false`
Обратите внимание.
Для каждого стенда следует также задавать параметр
type, определяющий тип стенда (DEV, PROM, PSI и другие). Данный параметр используется для загрузки стендозависимых объектов из директорииpost-initна определенные стенды во время установки IDM.Стендозависимые объекты, в свою очередь, должны иметь в названии файла метки типов стендов, на которые их не следует загружать. Данные метки оформляются как
no_<тип стенда>и перечисляются через подчеркивание.Например, роль
031-role-functional-admin-ad-exchange_no_PROM_no_IFT.xmlне будет загружена на стенды сtype: "PROM"иtype: "IFT".
Данный блок отвечает за параметры конфигурации Confluence#
confluence:
pageUpdate: true # Включить/отключить вывод в Confluence
credentialsId: "tuz_prod" # Credentials в Platform V DevOps Tools (Jenkins) для доступа в Confluence
url: "https://mycorp.atlassian.space/wiki" # Базовый адрес Confluence
space: "IDMINT" # Пространство
pageId: "155609943" # ID страницы
history: 5 # Число записей на странице
Маппинг секретов значениям в конфигурации ресурсов для их замены (например смена паролей)#
resourceSecrets:
- name: "AD/Exchange-PD10" # Имя ресурса
oid: "10000000-0000-0000-0000-100000000300"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
# Указать дополнительные секции при использовании нескольких ресурсов **AD/Exchange** с указанием name и oid дополнительного ресурса AD, например:
- name: "AD/Exchange-test"
oid: "10000000-0000-0000-0000-100000001300"
stands: "dev1"
- name: "DEPARTMENTS" # Имя ресурса
oid: "10000000-0000-0000-0000-100000000100"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
- name: "EMPLOYEES" # Имя ресурса
oid: "10000000-0000-0000-0000-100000000200"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
- name: "EMPLOYEES saplogin mailalias" # Имя ресурса
oid: "10000000-0000-0000-0000-100000002000"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
- name: "SCIM" # Имя ресурса
oid: "10000000-0000-0000-0000-100000000500"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
- name: "SOAP" # Имя ресурса
oid: "10000000-0000-0000-0000-100000000700"
stands: "dev1" # Указать список стендов через запятую, (секция midpoint) где развернут данный ресурс, например: "dev1,dev2,dev3"
Параметры запуска MasterJob#
resourcesJobUrl: "https://mycorp.jenkins.space/"
resourcesJob: "job/loadResourcesFromNexusGitVault" # Имя сущности инструмента Jenkins (Jenkins job) для загрузки ресурсов c полным путем
resourcesJobCredId: "deployConfMasterCredId" # Имя секрета Platform V DevOps Tools (Jenkins) Credentials с Token API Platform V DevOps Tools для запуска job деплоя конфигурации
loadedResources:
Openshift_1_dev1: # Произвольное имя стенда выбираемое в MasterJob
- name: "Resources" # Произвольное имя
configs: "base,system" # Список загружаемых ресурсов на стенд
engine: "dev1" # Ссылка на параметры ядра (один из тех что перечислены в секции midpoint). Так же должен называться и каталог в Bitbucket с параметрами (стандартный вариант)
paramsBranch: "" # Ветка в репозитории конфигураций, содержащая необходимые параметры. Если пусто — будет взято значание из параметра git
overrideTasksFile: "" # Имя файла с переопределяемой конфигурацией параметров
deleteBeforeUpload: true # Если установлено, то ресурсы будут удалены перед загрузкой. Если выключено — будет попытка перезаписать ресурсы
waitTaskCompletion: true # Если установлено, будем ожидать завершения задач по каждому этапу импорта. Если выключено — статус задач после загрузки не будет отслеживаться
deletionTaskByName: false # Если установлено, будем удалять задачи совпадающие по имени. Если нет - только по oid
factLoadResources: true # Если установлено, то будут загружены ресурсы
factLoadTasks: true # Если установлено, то будут загружены задачи
loadFromGit: false # При false конфигурация берется из дистрибутива, при true загрузка будет производиться из bitducket
configsBranch: "master" # Ветка в репозитории для получения конфигураций
- name: "Resources-delta" # Произвольное имя
configs: "connectorhost,exchange" # Список загружаемых ресурсов на стенд
engine: "dev1" # Ссылка на параметры ядра (один из тех что перечислены в секции midpoint). Так же должен называться и каталог в Bitbucket с параметрами (стандартный вариант)
paramsBranch: "" # Ветка в репозитории конфигураций, содержащая необходимые параметры. Если пусто — будет взято значание из параметра git
deleteBeforeUpload: true # Если установлено, то ресурсы будут удалены перед загрузкой. Если выключено — 0будет попытка перезаписать ресурсы
waitTaskCompletion: true # Если установлено, будем ожидать завершения задач по каждому этапу импорта. Если выключено — статус задач после загрузки не будет отслеживаться
deletionTaskByName: false # Если установлено, будем удалять задачи совпадающие по имени. Если нет - только по oid
factLoadResources: true # Если установлено, то будут загружены ресурсы
factLoadTasks: true # Если установлено, то будут загружены задачи
# `Переопределение варианта загрузки конфигурации`
loadFromGit: false # При false конфигурация берется из дистрибутива, при true загрузка будет производится из bitducket
configsBranch: "master" # Ветка в репозитории для получения конфигураций
Openshift_2_dev2: # Произвольное имя стенда выбираемое в мастер-сущности инструмента Jenkins (Jenkins job)
- name: "Resources_git" # Произвольное имя
configs: "system" # Список загружаемых ресурсов на стенд
engine: "dev2" # Ссылка на параметры ядра (один из тех что перечислены в секции midpoint). Так же должен называться и каталог в Bitbucket с параметрами (стандартный вариант)
paramsBranch: "master" # Ветка в репозитории конфигураций, содержащая необходимые параметры. Если пусто — будет взято значание из параметра git
# Следующие параметры не обязательно описывать в каждой секции - значения по умолчанию указаны ниже
# deleteBeforeUpload: true # Если установлено, то ресурсы будут удалены перед загрузкой. Если выключено — будет попытка перезаписать ресурсы
# waitTaskCompletion: true # Если установлено, будем ожидать завершения задач по каждому этапу импорта. Если выключено — статус задач после загрузки не будет отслеживаться
# deletionTaskByName: false # Если установлено, будем удалять задачи совпадающие по имени. Если нет - только по oid
# factLoadResources: true # Если установлено, то будут загружены ресурсы
# factLoadTasks: true # Если установлено, то будут загружены задачи
# Переопределение варианта загрузки конфигурации
loadFromGit: true # При false конфигурация берется из дистрибутива, при true загрузка будет производится из bitducket
configsBranch: "1.2.3-718_dev" # Ветка в репозитории для получения конфигураций
- name: "Resources_distr" # Произвольное имя
configs: "system" # Список загружаемых ресурсов на стенд
engine: "dev2" # Ссылка на параметры ядра (один из тех что перечислены в секции midpoint) Также должен называться и каталог в Bitbucket с параметрами (стандартный вариант)
paramsBranch: "" # Ветка в репозитории конфигураций, содержащая необходимые параметры. Если пусто — будет взято значание из параметра git
# Следующие параметры не обязательно описывать в каждой секции - значения по умолчанию указаны ниже
# deleteBeforeUpload: true # Если установлено, то ресурсы будут удалены перед загрузкой. Если выключено — будет попытка перезаписать ресурсы
# waitTaskCompletion: true # Если установлено, будем ожидать завершения задач по каждому этапу импорта. Если выключено — статус задач после загрузки не будет отслеживаться
# deletionTaskByName: false # Если установлено, будем удалять задачи совпадающие по имени. Если нет - только по oid
# factLoadResources: true # Если установлено, то будут загружены ресурсы
# factLoadTasks: true # Если установлено, то будут загружены задачи
# Переопределение варианта загрузки конфигурации
# При false конфигурация берется из дистрибутива
# loadFromGit: false
# configsBranch: "master" # Ветка в репозитории для получения конфигураций
Параметры для запуска job расстановки меток на ноды IDM#
patchNodes: # Операции будут выполняться в указанном порядке в рамках стенда
dev7: # Id стенда - должен совпадать с одним из секции midpoint
- name: "Focal Task" # Произвольное имя
range: "3" # Диапазоны нод
mode: "set" # Режим установки метки - на данных нодах будут запускаться задачи только по данной метке. Специальлные 'none' - без имени и 'node' - текущая нода
label: "focal-task:2" # Текст метки должен совпадать с указанным в задаче через : можно ограничить число потоков
- name: "Import Task" # Произвольное имя
range: "2" # Диапазоны нод
mode: "set" # Режим установки метки - на данных нодах будут запускаться задачи только по данной метке. Специальлные 'none' - без имени и 'node' - текущая нода
label: "import-task:2" # Текст метки должен совпадать с указанным в задаче через : можно ограничить число потоков
idmc-lt: # Id стенда - должен совпадать с одним из секции midpoint
- name: "Focal Task" # Произвольное имя
range: "1-3" # Диапазоны нод
mode: "set" # Режим установки метки - на данных нодах будут запускаться задачи только по данной метке. Специальлные 'none' - без имени и 'node' - текущая нода
label: "focal-task:2" # Текст метки должен совпадать с указанным в задаче через : можно ограничить число потоков
- name: "Dismiss Task" # Произвольное имя
range: "4" # Диапазоны нод
mode: "set" # Режим установки метки - на данных нодах будут запускаться задачи только по данной метке. Специальлные 'none' - без имени и 'node' - текущая нода
label: "dismiss-task:2,none:2" # Текст метки должен совпадать с указанным в задаче через : можно ограничить число потоков
- name: "Default labels" # Произвольное имя
range: "0" # Диапазоны нод
mode: "reset" # Режим сброса меток в значения по умолчанию
label: "" # Текст метки должен совпадать с указанным в задаче (при reset не имеет значения)