Проверка валидности сертификатов#
В случае необходимости проверки валидности сертификатов можно воспользоваться Jenkins job certs_validation, которая должна быть создана на этапе установки компонента SMBX. Подробнее создание Jenkins job описано в документе Руководство по установке, раздел Создание Jenkins Job для автоматической установки.
Проверка валидности сертификатов осуществляется на hosts, которые указаны в файле inventory в блоке [artemis].
Предусловия#
Предварительно необходимо добавить в конфигурационный файл vars.yml блок настроек:
validate_certs:
ssl_path: /path/to/ssl # путь до директории с сертификатами
y_exp_days: 45 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в желтый цвет. Значение по умолчанию - 45
r_exp_days: 10 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в красный цвет. Значение по умолчанию - 10. Имеет высший приоритет над y_exp_days в случае указания одинаковых значений
По умолчанию данные параметры заданы в файле Ansible/roles/validate_certs/defaults/main.yml значениями:
validate_certs:
ssl_path: /opt/Apache/artemis/broker/ssl # путь до директории с сертификатами
y_exp_days: 45 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в желтый цвет. Значение по умолчанию - 45
r_exp_days: 10 # Проверяет, если сертификат имеет срок годности меньше, то в email-отчете строка с этим сертификатом будет окрашена в красный цвет. Значение по умолчанию - 10. Имеет высший приоритет над y_exp_days в случае указания одинаковых значений
Работа с Jenkins job#
Наименование задания Jenkins: certs_validation. Запустить данную Jenkins Job с ниже перечисленными параметрами.
Параметры запуска:
job_config_renew— параметр, использующийся для перенастройки задания Jenkins. Его необходимо включить, если был добавлен новый параметрschedule, либо если он был удален. При запуске с указанными параметрамиjob_config_renewиscheduleбудет осуществляться запуск Jenkins job по расписанию, указанному вschedule, столько раз, сколько разных inventory указано в параметреinventory. При запуск Jenkins job с пустымscheduleи заполненнымjob_config_renewбудет произведена очистка заданий Cron. По умолчаниюjob_config_renewне указывается;inventory— выбратьinventory, для которого необходимо произвести проверку валидности сертификатов. Файл vars.yml должен быть заполнен в данном inventory;emailTo— список адресов электронной почты для отправки технических писем с логами;schedule— время автоматического запуска Jenkins job в формате Cron. Например,15 14 1 * *. Данный пример будет запускать Jenkins job 1 числа каждого месяца в 14 часов 15 минут для всех inventory из параметраinventory;custom_vault_password— указывается, если нужен ручной ввод пароля для Ansible Vault;jenkins_slave— выбор Jenkins slave;ansible_branch— ветка скриптов развертывания (в настройках Jenkins Job указать ${ansible_branch});ansible_version— версия используемого Jenkins tool для Ansible, например ansible29;vault_cred— ID credential типа secret file со строкой для расшифровки паролей (ansible vault) (можно указывать несколько через запятую). При задании параметра secman_url - полный путь в HashiCorp Vault до пароля, например {ID credential }|/<путь до>/vault:{password_1},{ID credential _2}|/<путь до>/vault:{password_2} (в качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на 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 доверенными;inventories_repo— репозиторий с inventory (ssh://);inventories_branch— ветка репозитория;inventories_path— путь до inventories от корня репозитория.
После заполнения всех параметров необходимо собрать Jenkins job.
Проверка валидности сертификатов осуществляется на hosts, которые указаны в файле inventory в блоке [artemis].
В результате после успешной сборки Jenkins job certs_validation на e-mail, указанный в параметре emailTo, придет письмо с таблицей по проверенным сертификатам, во вложении будет отчет в виде csv-файла.
Желтым в таблице будут помечены те сертификаты, по которым срок годности истекает менее, чем через y_exp_days дней, указанных в файле vars.yml, красным — менее, чем r_exp_days дней.