Развертывание дистрибутива#

Данная процедура позволяет добавить на имеющийся брокер адреса/очереди и выдать права на них. Для того, чтобы это сделать, необходимо предварительно выполнить первый шаг — создать конфигурационный дистрибутив, содержащий информацию о создаваемых адресах/очередях и правах на них — Создание дистрибутива.

Ручной способ#

На сервере, с которого производилась установка, выполнить команду:

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

, где:

  • ID — имя созданного inventory,

  • playbook — для SMBX, установленного на ВМ используется artemis_queues_roles.yml, в облачной среде — cloud_artemis_management.yml.

С помощью Jenkins#

Наименование задания Jenkins: artemis_config_deploy — для SMBX, установленного на ВМ и artemis_management_cloud — для SMBX, установленного в облачной среде.

Параметры запуска:

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

  • inventory — выбрать inventory, для которого необходимо произвести последовательное обновление;

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

  • nexusHelmUrl — указать ссылку на helm chart (только для Jenkins job artemis_management_cloud и SMBX, установленного в облачной среде);

  • tags — теги (без указания тегов очереди и роли будут добавляться):

    • erase_queue — удаление очереди; если очередь была единственной в адресе, то удаляется вместе с адресом;

    • erase_role — удаление роли;

  • emailto — список адресов электронной почты для отправки технических писем о начале/окончании установки с логами;

  • custom_vault_password — указывается, если нужен ручной ввод пароля для Ansible Vault;

  • kubectlCliVersion — параметр, отвечающий за jenkins tool для kubectl (только для Jenkins job artemis_management_cloud и SMBX, установленного в облачной среде);

  • helmCliVersion — параметр, отвечающий за jenkins tool для helm (только для Jenkins job artemis_management_cloud и SMBX, установленного в облачной среде);

  • jenkins_slave — выбор Slave Jenkins;

  • jdk_tool — указать Jenkins Tool с нужной версией JDK;

  • ansible_branch — ветка скриптов развертывания (в настройках Jenkins Job указать ${ansible_branch});

  • ansible_version — версия используемого ansible, например ansible29;

  • nexus_user_cred — Jenkins Username With Password Credential ID для выкачивания дистрибутива устанавливаемого компонента из Nexus. Чтобы получить username и password для Nexus из SecMan, надо заполнить поле secman_url и это поле в формате:
    JenkinsCredID|SecManPath:SecManKeys|SecManParams
    Здесь:
    JenkinsCredID - Jenkins Vault App Role Credential ID c реквизитами для подключения к SecMan;
    SecManPath - Путь к секретам в SecMan;
    SecManKeys - Имена полей для username и password в SecMan через запятую;
    SecManParams - Параметры для подключения к SecMan через точку с запятой. Могут быть пропущены вместе с |, если параметры по умолчанию;

  • vault_cred — Jenkins secret file credential ID со строкой для расшифровки паролей ansible vault (можно несколько через запятую). Чтобы получить ansible vault password из SecMan, надо заполнить поле secman_url и это поле в формате:
    JenkinsCredID|SecManPath:SecManKey|SecManParams
    Здесь:
    JenkinsCredID - Jenkins Vault App Role Credential ID с реквизитами для подключения к SecMan;
    SecManPath - Путь к секрету в SecMan;
    SecManKey - Имя поля для ansible vault password в SecMan;
    SecManParams - Параметры для подключения к SecMan, через точку с запятой. Могут быть пропущены вместе с |, если параметры по умолчанию (в качестве пароля можно использовать не строку, а файл в base64 формате и секрет в SecMan с именем, оканчивающимся на „Base64“, например myVaultBase64);

  • server_ssh_cred — ID credential типа ssh key для подключения к серверам. При задании параметра secman_url - полный путь в HashiCorp Vault, например {ID credential типа vault app role для получение секретов из HashiCorp Vault}|/<путь до>/ssh:{юзер},{ключ},{passphrase} (в качестве ключа можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64, например myPrivateKeyBase64);

  • 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 от корня репозитория.