Подготовка общей конфигурации 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 не имеет значения)