# Экспорт конфигурации. Восстановление кластера Скрипт `configmgr.sh` в составе nscli предоставляет возможность экспорта и импорта конфигурации в yaml-файл на jump-хосте, что может быть полезно, если по какой-либо причине кластер потребовалось установить заново. Такой файл содержит лишь значения, указанные пользователем при помощи nsctl, например, объемы вычислительных мощностей, настройки мониторинга и базы данных. Секреты, комплект приложений, постоянные тома не копируются, однако _названия_ используемых секретов и постоянных томов экспортируются. ## Экспорт Экспорт конфигурации осуществляется при помощи команды: ```text ./configmgr.sh export --namespace NAMESPACE # пространство имен, в котором развернут GlobalServer --group GROUP # группа ресурсов, которую необходимо экспортировать --file FILE # путь к файлу, в который будет записана конфигурация кластера ``` ## Импорт Импорт конфигурации осуществляется при помощи команды: ```text ./configmgr.sh import --namespace NAMESPACE # пространство имен, в котором (будет) развернут GlobalServer --file FILE # путь к YAML-файлу, из которого будет загружена конфигурация кластера ``` ## Пример восстановления кластера Предположим, что у нас был кластер GlobalServer, развернутый в группе ресурсов `gs-cluster` пространства имен `gs-k8s`, который более недоступен. Однако, есть YAML-описания ресурсов Kubernetes (секреты, постоянные тома, сервисные пользователи и роли - все, что было создано на этапе установки), а также есть конфигурация сервера, заранее экспортированная при помощи команды: ```shell cd ~/nscli ./configmgr.sh export \ --namespace gs-k8s \ --group gs-cluster \ --file config.yaml ``` Тогда процесс восстановления на чистый K8s с подготовленного jump-хоста (следуйте [инструкции по установке кластера](./020_install.md) до раздела ["Установка утилиты Nscli"](project:#nscli_installation) включительно) выглядит следующим образом: 1. Воссоздаем пространство имен при помощи команд: ```shell ./namespace.sh create_install_scripts chmod +x ~/nscli/workspace/install_scripts/gs-k8s/install.sh ~/nscli/workspace/install_scripts/gs-k8s/install.sh ``` Подробнее читайте в разделе ["Настройка рабочего пространства в kubernetes"](project:#ns_configuration) инструкции по установке. 2. Если в NFS-хранилище не осталось комплекта приложений, то загружаем его в соответствии с ["Подготовка комплекта приложений appkit"](project:#appkit_preparation). 3. Устанавливаем ресурсы K8s, например, при помощи команды: ```shell cd k8s-resources # директория с ресурсами k8s kubectl apply -f * ``` 4. Импортируем конфигурацию: ```shell cd ~/nscli ./configmgr.sh import \ --namespace gs-k8s \ --file config.yaml ``` Скрипт сообщит об успешном завершении: ```text Конфигурация импортирована ``` 5. Запускаем кластер: ```shell cd ~/nscli ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resgroup.sh start_appkit --name gs-cluster" ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resbook.sh enable_all --group gs-cluster" ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resgroup.sh enable --name gs-cluster" ```