Генерация нового Inventory
-
Разархивируйте новую версию Inventory-генератора:
$ cd $NEW_DISTRIB_DIR$ tar xvf invgen_box-${NEW_RELEASE_NAME}.tar.gz -
Сгенерируйте новый файл минимальной конфигурации:
$ cd $NEW_DISTRIB_DIR/invgen_box-$NEW_RELEASE_NAME$ chmod +x invgen-${INVGEN_ARCH}$ ./invgen-${INVGEN_ARCH} config-example > ~/minimal_${NEW_RELEASE_NAME}.yml -
Заполните полученный файл актуальными для Платформы значениями.
Перейдите в директорию новой версии дистрибутива и запустите скрипт pre_upgrade.py:
$ cd $NEW_DISTRIB_DIR/repos_mcs_distr_box-$NEW_RELEASE_NAME/upgrade/minimal_yml$ ./pre_upgrade.py \--invgen-path $PREV_DISTRIB_DIR/invgen_box-$PREV_RELEASE_NAME/invgen-$INVGEN_ARCH \-o $PREV_INVENTORY_DIR/vkcloud \-n ~/minimal_${NEW_RELEASE_NAME}.yml
В командной строке отобразится следующая информация:
-
Переменные, которые были изменены после генерации при установке Платформы 4.0. Сохраните их для переноса переменных после генерации Inventory для Платформы 4.1.
Пример+default_innodb_buffer_pool_size: 3221225472 # vkcloud/group_vars/vkcloud/common.yml-default_innodb_buffer_pool_size: 805306368 # vkcloud/group_vars/vkcloud/common.yml+mysql|max_connections: 10000 # vkcloud/group_vars/vkcloud_galera_barbican/vars.yml-mysql|max_connections: 100 # vkcloud/group_vars/vkcloud_galera_barbican/vars.yml+mysql|max_connections: 30000 # vkcloud/group_vars/vkcloud_galera_billingaccountservice/vars.yml-mysql|max_connections: 300 # vkcloud/group_vars/vkcloud_galera_billingaccountservice/vars.yml -
Параметры, устаревшие для Платформы 4.1. Удалите их из файла
minimal.ymlновой версии.Примерvars:keycloak_ldap_admins_groupsDn: cn=groups,cn=accounts,{{ keycloak_ldap_basedn }}keycloak_ldap_admins_search: (memberof=cn=ldap_admins,cn=groups,cn=accounts,{{ keycloak_ldap_basedn }})keycloak_ldap_admins_usersDn: cn=users,cn=accounts,{{ keycloak_ldap_basedn }}keycloak_ldap_basedn: dc=vk,dc=teamkeycloak_ldap_fullsync_period: 300keycloak_ldap_host: ldap.{{ stand_domain_name }} -
Параметры требований установки, новые для Платформы 4.1. Добавьте их в файл
minimal.ymlновой версии.Примерcomponents:- rs- freeipa- network- sprut- maas- laasequipment:evh: 0groups:private_dns:- kcn001
Если файл minimal.yml, подготовленный для Платформы 4.0, был утерян, восстановите его:
$ ./restore_minimal_yaml.py -i $PREV_INVENTORY_DIR/vkcloud/ -f ~/minimal.yml --write$ head ~/minimal.ymlcomponents:- cloud_audit_logs- highiops- magnum- octavia- trove- postfix- manila- xaasequipment:
Проверьте, что значения переменных в файле корректны для установленной Платформы 4.0.
Внесите в файл minimal.yml новой версии изменения в соответствии с рекомендациями, полученными в результате выполнения скрипта pre_upgrade.py (подробнее — в разделе Корректировка файла минимальной конфигурации новой версии):
-
Откройте файл
minimal.yml:$ vi ~/minimal.yml -
Удалите устаревшие для Платформы 4.1 данные, сверяясь со списком из раздела Корректировка файла минимальной конфигурации новой версии.
-
Добавьте новые переменные для Платформы 4.1 в
minimal.yml, сверяя их с потребностями установки (например, может не потребоваться активация сервисов MaaS/LaaS и перенос их на evh-хост и т. д.).
Сгенерируйте новый Inventory из полученного файла minimal.yml:
$ $NEW_DISTRIB_DIR/invgen_box-$NEW_RELEASE_NAME/invgen-$INVGEN_ARCH generate -config ~/minimal.yml -target ~/inventory-$NEW_RELEASE_NAME
В сгенерированный Inventory внесите изменения в соответствии с рекомендациями, полученными в предыдущем шаге в выводе скрипта pre_upgrade.py в разделе Корректировка файла минимальной конфигурации новой версии.
При необходимости раскодируйте его для обработки скриптом vault_migration.py, чтобы провести миграцию vault-файла:
$ ansible-vault decrypt $PREV_INVENTORY_DIR/vkcloud/group_vars/vkcloud/vault.yml
Перенесите пароли в новый Inventory с помощью скрипта vault_migration.py:
$ cd $NEW_DISTRIB_DIR/repos_mcs_distr_box-$NEW_RELEASE_NAME/upgrade/minimal_yml$ ./vault_migration.py --source $PREV_INVENTORY_DIR/vkcloud/group_vars/vkcloud/vault.yml --target ~/inventory-$NEW_RELEASE_NAME/vkcloud/group_vars/vkcloud/vault.yml
Измените значение переменной vault_ceph_admin_key на содержимое переменной vault_ceph_admin_glance_tmp в файле ~/inventory-$NEW_RELEASE_NAME/vkcloud/group_vars/vkcloud/vault.yml.
При необходимости закодируйте обе версии обратно после миграции vault-файла:
$ ansible-vault encrypt $PREV_INVENTORY_DIR/vkcloud/group_vars/vkcloud/vault.yml$ ansible-vault encrypt ~/inventory-$NEW_RELEASE_NAME/vkcloud/group_vars/vkcloud/vault.yml