Подготовка базы данных для работы с хранением окон агрегации#

Предусловия#

  1. Предварительно необходимо заполнить параметры в конфигурационном файле vars.yml в блоке db. Ознакомиться с примером можно в разделе Пример заполненного файла vars.yml.

  2. При ручной настройке базы данных необходимо:

  • разархивировать архив ./EVPC-dbinit-[version]-distrib.zip в папку files;

  • перенести библиотеку encryptor-cli-2.4.0-fatjar.jar из директории ./package/bh в корень директории Ansible.

Ручной способ с помощью Ansible#

Запустите настройку базы данных командой в терминале из папки Ansible:

ansible-playbook -i inventories/<ID>/inventory <PLAYBOOK>.yml --ask-vault-pass

где:

  • ID — имя недавно созданного inventory;

  • PLAYBOOK — playbook для настройки базы дынных: db.yml.

При помощи Jenkins#

Для настройки базы данных с помощью Jenkins используйте задание Jenkins db_action с выбором playbook db.yml без указания тегов. Процесс создания задания Jenkins db_action приведен в разделе Создание Jenkins Job для автоматической установки, подраздел «Создание Jenkins Job db_action».

Настраиваемые параметры:

  • job_config_renew — перенастройка задания Jenkins. Данный параметр используется, если был добавлен новый inventory. Меняет значения по умолчанию всех параметров. Сохраняет предыдущее состояние параметров inventories_repo, inventories_branch, inventories_path;

  • inventory — имя inventory для установки;

  • nexusUrl — полный путь до дистрибутива (можно указать несколько через запятую);

  • db_action — выбор действия, которое необходимо выполнить: update;

  • jenkins_slave — выбор jenkins slave;

  • jdk_tool — указание Jenkins Tool с нужной версией JDK, конкретное значение необходимо получить у администратора Jenkins;

  • ansible_branch — используется для работы с несколькими ветками скриптов развертывания. Работает только при значении Branch Specifier (blank for „any“) равным ${ansible_branch};

  • ansible_version — указание Jenkins Tool с необходимой версией Ansible. Конкретное значение необходимо получить у администратора Jenkins;

  • nexus_user_cred — ID credential типа username with password для выкачивания дистрибутива компонента из Nexus. Чтобы получить username и password для Nexus из SecMan, необходимо заполнить параметр secman_url в формате: JenkinsCredID |SecManPath:SecManKeys|SecManParams, где:

    • JenkinsСredID — Jenkins Vault App Role Credential ID c реквизитами для подключения к SecMan;

    • SecManPath — путь к секретам в SecMan;

    • SecManKeys — имена полей для username и password в SecMan (через запятую);

    • SecManParams — параметры для подключения к SecMan (через точку с запятой). Если данные параметры по умолчанию, то пропускаются вместе с «|». Примеры:

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/nexus:username,password

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/nexus:username,password|engineVersion:2

  • vault_cred — ID credential типа secret file со строкой для расшифровки паролей ansible vault (можно указывать несколько через запятую). Чтобы получить ansible vault password из SecMan, необходимо заполнить параметр secman_url в формате: JenkinsСredID|SecManPath:SecManKey|SecManParams, где:

    • JenkinsСredID — Jenkins Vault App Role Credential ID с реквизитами для подключения к SecMan;

    • SecManPath — путь к секрету в SecMan;

    • SecManKey — имя поля для ansible vault password в SecMan;

    • SecManParams — параметры для подключения к SecMan (через точку с запятой). Если данные параметры по умолчанию, то пропускаются вместе с «|» (в качестве пароля можно использовать не строку, а файл в base64 формате и секрет в SecMan с именем, оканчивающимся на «Base640», например: myVaultBase64). Примеры:

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password|engineVersion:2

      • SecManAppRoleCred1|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password1,SecManAppRoleCred2|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password2

      • SecManAppRoleCred1|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password1|engineVersion:2,SecManAppRoleCred2|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password2|engineVersion:2

  • secman_url — URL для подключения к HashiCorp Vault;

  • ssl_verify — проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными;

  • second_hand_approve — подтверждение запуска другим администратором (контроль «второй рукой»). Двухэтапное подтверждение запуска, требующее действия другого администратора для запуска задания Jenkins Job. При активации этой опции одному администратору будет недоступна возможность запуска задания Jenkins Job без подтверждения со стороны другого администратора;

  • inventories_repo — репозиторий с inventory (ssh://);

  • inventories_branch — ветка репозитория;

  • inventories_path — путь до inventories от корня репозитория.