Обновление секретов¶
Ручная ротация SSH-ключей¶
Для смены SSH-ключей сервисов keystone, nova и neutron выполните следующие действия:
Войдите в хранилище секретов Vault и перейдите в директорию secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Обновите значение
private_keyиpublic_keyдля параметров:keystone_ssh_key,neutron_ssh_key,nova_ssh_key.
Запустите пайплайн с тегом
-t keystone,nova,neutronв параметреKOLLA_ARGS.
Автоматическая ротация пользователей и паролей для подключения LDAP¶
Предварительные требования:
В HashiСorp Vault должен быть включён и настроен Secrets Engine ldap с созданной в нём парой ролей для пользователей и паролей.
На этапе установки LCM должна быть включена интеграция с каталогами LDAP (опция auth LDAP for GitLab and NetBox), а также настроена ролевая модель в OpenStack.
Для настройки автоматической ротации для подключения LDAP выполните следующие действия:
Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Создайте новую версию
passwords_ymlи измените в файле значения для следующих параметров:ldap_user— пользователь из LDAP для настройки ролевой модели в OpenStack в формате ldap-ro,ldap_password— пароль для пользователяldap_user.
Сохраните изменения для новой версии.
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в раздел и создайте новую переменную с именем
vault_ldap_mountи значением, указывающим на название Vault Secrets Engine ldap (например,ldap). Можно добавить опциональные переменные:EXP_THRESHOLD_DAYS— количество дней до окончания TTL (Time to Live) роли, по умолчанию30;EXP_THRESHOLD_SECONDS—EXP_THRESHOLD_DAYS * 86400- количество секунд до окончания TTL роли, рассчитывается автоматически.
Перейдите в конфигурационный файл региона (по умолчанию это
globals.d/REGION.yml) и добавьте в него строки:ldap_roles: - <название первой роли в Vault Secrets Engine ldap в формате ldap-ro1> - <название второй роли в Vault Secrets Engine ldap в формате ldap-ro2>
Перейдите в раздел и создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите
Rotate Vault AD/LDAP.Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите
Every month.В поле Variables добавьте переменную
ROTATEсо значениемtrue.Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Автоматическая ротация пользователей и паролей для подключения SMTP¶
Предварительные требования:
В HashiCorp Vault должен быть включен и настроен Secrets Engine ldap с созданной в нём парой ролей для пользователей и паролей.
Должен быть настроен шаблон почтового уведомления об алертах.
Для настройки автоматической ротации для подключения SMTP выполните следующие действия:
Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Создайте новую версию
passwords_ymlи измените в файле значения для следующих параметров:smtp_user— пользователь из LDAP для шаблона почтового уведомления об алертах в формате ldap-ro;smtp_password— пароль для пользователяsmtp_user.
Сохраните изменения для новой версии.
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в раздел и создайте новую переменную с именем
vault_ldap_mountи значением, указывающим на название Vault Secrets Engine ldap (например,ldap). Можно добавить опциональные переменные:EXP_THRESHOLD_DAYS— количество дней до окончанияttl(Time To Live) роли, по умолчанию30;EXP_THRESHOLD_SECONDS—EXP_THRESHOLD_DAYS * 86400- количество секунд до окончанияttlроли, рассчитывается автоматически.
Перейдите в конфигурационный файл региона (по умолчанию это
globals.d/REGION.yml) и добавьте в него строки:smtp_fqdn: "<название почтового домена, например, cloud.itkey.com>" smtp_roles: - <название первой роли в Vault ldap в формате smtp1> - <название второй роли в Vault ldap в формате smtp2>
Перейдите в раздел и создайте новый Schedule, нажав на кнопку New schedule.
В поле Description введите
Rotate Vault AD/LDAP.Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите
Every month.В поле Variables заведите переменную со значением
ROTATE: true.Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Ротация паролей сервисов OpenStack¶
Для получения информации о ротации паролей для сервисов OpenStack обратитесь к документации OpenStack.
Смена пароля УЗ администратора NetBox¶
Сгенерируйте новый пароль для УЗ администратора системы управления инфраструктурой NetBox.
Важно
Пароль должен содержать не менее 12 символов и должен включать хотя бы одну заглавную букву, одну строчную букву и одну цифру.
Войдите в интерфейс системы управления инфраструктурой NetBox
https://netbox.<имя домена>с действующими учётными данными администратора.Перейдите в раздел .
Нажмите на кнопку ✏️ напротив пользователя .
Введите новый пароль в поля Password и Confirm password и нажмите Save.
Повторно пройдите аутентификацию с обновлённым паролем.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
netbox_admin_passwordна новый пароль и нажмите Save.
Замена токена NetBox¶
Войдите в интерфейс системы управления инфраструктурой NetBox
https://netbox.<имя домена>с учётными данными администратора.Перейдите в раздел и выберите действие + Add.
Выберите пользователя в графе User.
При необходимости укажите дату истечения токена в поле Expires в формате
ГГГГ-ММ-ДД ЧЧ:ММ:СС.При необходимости укажите описание токена в поле Description.
При необходимости укажите разрешённые сети в поле Allowed IPs в формате «адрес сети/маска».
Выберите действие Create.
Отметьте чекбокс старого токена и нажмите Delete Selected.
Подтвердите удаление нажатием Delete 1 tokens.
Скопируйте новый токен в буфер обмена.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
NETBOX_TOKENи нажмите Save.
Смена пароля УЗ администратора Nexus¶
Сгенерируйте новый пароль для УЗ администратора платформы для хранения артефактов сборки Nexus.
Важно
Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.
Войдите в интерфейс платформы для хранения артефактов сборки Nexus
https://nexus.<имя домена>с действующими учётными данными администратора.Перейдите на страницу администратора .
Введите текущий пароль в поле Current Password и новый пароль в поля New Password и New Password (Confirm) и нажмите Save.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
nexus_admin_passwordна новый пароль и нажмите Save.
Замена пароля в контейнере Nexus¶
Подключитесь к LCM-узлу по ssh с привилегиями пользователя root.
Подключитесь к контейнеру
gitlab-runner, введя команду:$ docker exec -it gitlab-runner bash
Выполните команду:
$ echo 'admin:<nexus_admin_password>' | base64
Где
<nexus_admin_password>— сгенерированный пароль для УЗ администратора платформы для хранения артефактов сборки Nexus. Значение доступно для просмотра в хранилище секретов.Полученное значение скопируйте и вставьте в файл
/root/.docker/config.json.Выйдите из контейнера
gitlab-runner.
Смена паролей доступа к связанным системам и службам¶
Сгенерируйте новый пароль для базы данных
netbox_db_password.Сгенерируйте новый пароль для брокера задач
netbox_redis_password.Сгенерируйте новый пароль для кеширования данных
netbox_redis_cache_password.Важно
Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменных
netbox_db_password,netbox_redis_cache_passwordиnetbox_redis_passwordна новые пароли и нажмите Save.
Замена паролей в переменных окружения¶
Подключитесь к LCM-узлу по ssh с привилегиями пользователя root.
Сохраните текущие переменные окружения, введя команду:
$ cp -r /installer/data/netbox/env /installer/data/netbox/env_backup
Скачайте установочный архив из внутреннего репозитория или по внешней ссылке.
Перейдите в папку со скаченным архивом и извлеките из него секреты, введя команду:
$ tar --strip-components=3 -xzvf <имя файла архива>.tgz -C /installer/data/netbox/env installer/netbox-docker/env/*.env
Перейдите в папку с извлечёнными файлами, введя команду:
$ cd /installer/data/netbox/env
В файле
netbox.envв текстовом редакторе измените значения для переменных:DB_PASSWORD– замените значение на сгенерированный пароль для базы данных,REDIS_CACHE_PASSWORD– замените значение на сгенерированный пароль для кеширования данных,REDIS_PASSWORD– замените значение на сгенерированный пароль для брокера задач,SUPERUSER_PASSWORD– замените значение на пароль УЗ администратора системы управления инфраструктурой NetBox.
В файле
postgres.envв текстовом редакторе измените значение для переменной:POSTGRES_PASSWORD– замените значение на сгенерированный пароль для базы данных.
В файле
redis-cache.envв текстовом редакторе измените значение для переменной:REDIS_PASSWORD– замените значение на сгенерированный пароль для кеширования данных.
В файле
redis.envв текстовом редакторе измените значение для переменной:REDIS_PASSWORD– замените значение на сгенерированный пароль для брокера задач.
Замена паролей в системах¶
Подключитесь к контейнеру
netbox-postgres, введя команду:$ docker exec -it netbox-postgres bash
Последовательно введите команды:
$ psql -h 127.0.0.1 -U netbox -d netbox $ \c postgres $ ALTER USER netbox WITH PASSWORD 'new_password';
Где
new_password— сгенерированный пароль для базы данных. Значение доступно для просмотра в хранилище секретов.Выйдите из контейнера
netbox-postgres.Подключитесь к контейнеру
netbox-redis, введя команду:$ docker exec -it netbox-redis /bin/sh
Последовательно введите команды:
$ redis-cli $ AUTH <old_pass> $ set mypasswd <new_pass>
Где
<old_pass>и<new_pass>— старый и новый пароли для брокера задач. Значения доступны для просмотра в хранилище секретов.Выйдите из контейнера
netbox-redis.Подключитесь к контейнеру
netbox-redis-cache, введя команду:$ docker exec -it netbox-redis-cache /bin/sh
Последовательно введите команды:
$ redis-cli $ AUTH <old_pass> $ set mypasswd <new_pass>
Где
<old_pass>и<new_pass>— старый и новый пароли для кеширования данных. Значения доступны для просмотра в хранилище секретов.Выйдите из контейнера
netbox-redis-cache.Пересоздайте контейнеры с новыми учётными данными, последовательно введя команды:
$ . /installer/config/settings $ docker compose -f $CFG_HOME/netbox-compose.yml up –d
Замените переменные окружения файлами из резервной копии, введя команду:
$ mv /installer/data/netbox/env_backup /installer/data/netbox/env