Автоматизированная подготовка узлов для установки платформы
Скрипт node-bootstrap.sh автоматизирует подготовку узлов к установке Nova Container Platform (Nova). Скрипт приводит систему в состояние, полностью соответствующее требованиям платформы.
1. Предварительные требования
Перед запуском скрипта убедитесь, что выполнены следующие условия:
-
Права доступа: запуск от root (sudo или su)
-
Оболочка: POSIX-совместимая (sh, bash, dash, zsh)
-
Необходимые утилиты:
sed,grep,awk,cut,tr,date,printf,test,ssh-keygen,systemctl,ss/netstat,lsmod,modprobe,sysctl,grub2-mkconfig/grub-mkconfig,useradd,usermod
2. Быстрый старт
-
Скачайте скрипт на целевой сервер:
curl -O https://repo/node-bootstrap.sh chmod +x node-bootstrap.sh -
Создайте файл конфигурации
node_config.env:cat > node_config.env << 'EOF' DEPLOY_METHOD=0 (1) INFRA_PROVIDER=2 (2) PLATFORM_VERSION_NCP=7.6.0 (3) USER_CHOICE_PORTS_FREE=yes USER_CHOICE_KERNEL_MODULES_LOAD=yes USER_CHOICE_PACKAGES_INSTALL=yes USER_CHOICE_PACKAGES_UPDATE_REPOS=yes USER_CHOICE_SERVICES_FIX=yes USER_CHOICE_TIME_SYNC_CONFIGURE=yes USER_CHOICE_TIME_SYNC_UPDATE_REPOS=yes USER_CHOICE_TIMEZONE_CHANGE=yes USER_CHOICE_TIMEZONE_SELECTED=UTC USER_CHOICE_TIMEZONE_CONFIRM=yes USER_CHOICE_IPV6_ENABLE=yes USER_CHOICE_SECURITY_DISABLE=yes USER_CHOICE_CLOUD_INIT_CONFIGURE=yes USER_CHOICE_OS_NETWORK_CONFIGURE=yes USER_CHOICE_CREATE_USER=yes USER_CHOICE_USERNAME=demo-user (4) USER_CHOICE_GECOS=demo-user USER_CHOICE_USER_SSH_KEY_MODE=2 USER_CHOICE_USER_SSH_KEYS=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMDSr2jDFz9LVhMxYjRMLntw64UMXmnFZjk6UhQoRNOa demo (5) USER_CHOICE_CLEANUP_PERFORM=yes USER_CHOICE_CONFIG_FILE_DELETE=yes USER_CHOICE_REBOOT=3 (6) EOF1 DEPLOY_METHOD— метод развертывания:0— IPI,1— UPI.2 INFRA_PROVIDER— тип инфраструктуры:0— bare metal,1— vSphere,2— zVirt,3— k2Cloud.3 PLATFORM_VERSION_NCP— версия Nova.4 USER_CHOICE_USERNAME— имя пользователя для установки Nova.5 USER_CHOICE_USER_SSH_KEYS— открытый ключ SSH.6 USER_CHOICE_REBOOT— действие после выполнения скрипта:1— перезагрузить,2— выключить,3— без действий.Замените значения переменных на соответствующие вашей среде.
-
Запустите скрипт:
sudo ./node-bootstrap.sh -c node_config.env
3. Режимы работы и конфигурация
Скрипт поддерживает два режима работы.
3.1. Интерактивный режим (по умолчанию)
В интерактивном режиме скрипт задает вопросы по мере выполнения. Все ответы сохраняются в файл ./node_config.env.
-
Запустите скрипт:
sudo ./node-bootstrap.sh -c node_config.env -
Выберите метод развертывания Nova:
--== Nova Container Platform Node Preparation Script ==-- Select deployment method: [0 ] IPI [1 ] UPI
-
Выберите тип инфраструктуры, в которой развертывается Nova:
Select the type of infrastructure provider: [0 ] None (Baremetal) [1 ] vSphere [2 ] zVirt [3 ] k2Cloud
-
Укажите версию Nova для развертывания:
Enter Nova Container Platform version (format: X.Y.Z, example: 7.6.1): Supported versions: 1.x: 1.1.0, 1.2.0 7.x: 7.5.0, 7.6.0, 7.6.1 >
4. Этапы работы скрипта
4.1. Этап 1. Проверка совместимости
Скрипт определяет операционную систему и сверяет ее версию, метод развертывания и тип инфраструктуры с матрицей совместимости Nova (подробнее).
[ INFO ] Detected: Astra Linux (ID: astra), Version: 1.7.9
[ INFO ] All compatibility checks passed.
При несовместимости скрипт завершает работу и выводит список поддерживаемых ОС и ссылку на документацию:
[ ERROR ] Operating system ALT Linux version 10.2.2 is NOT compatible
with Nova Container Platform version 7.6.0.
Supported combinations for Nova Container Platform 7.6.0:
- AlmaLinux: 8.x,9.x
- RED OS: 7.x.x,8.x.x,9.x.x
- Astra Linux SE: 1.7.5,1.7.6,1.7.9,1.8.1,1.8.3
...
For detailed compatibility information, please refer to
the documentation:
https://wiki.orionsoft.ru/nova/latest/reference/compatibility-matrix/
4.2. Этап 2. Аудит системы
Скрипт выполняет комплексную проверку системы без внесения изменений и формирует отчет о несоответствиях (статус WARNING):
--== STAGE 2: AUDIT ==--
[WARNING] Ports: 2 port(s) in use (53/tcp, 80/tcp)
[WARNING] Kernel modules: 1 module(s) not loaded (overlay)
[WARNING] Packages: 5 package(s) missing (cloud-init, cloud-guest-utils,
curl, network-manager, qemu-guest-agent)
[WARNING] Services: 3 service(s) required to be ENABLED
(cloud-init-local, cloud-config, cloud-final)
[WARNING] Services: 1 service(s) required to be DISABLED (ufw)
[WARNING] Time sync: Service chrony is not properly configured
[ INFO ] Timezone: Europe/Moscow
[WARNING] IPv6: Currently disabled (required to be enabled)
[WARNING] Security: APPARMOR is enabled (required to be disabled)
[WARNING] Cloud-init: Requires configuration for IPI deployment
[WARNING] OS specific settings: Requires configuration for Astra Linux SE
[WARNING] Cleanup: Required for ZVIRT IPI deployment
[WARNING] GRUB parameters missing: crashkernel=auto selinux=0 apparmor=0
[WARNING] Total issues found: 8
4.3. Этап 3. Исправление и настройка
На этом этапе скрипт предлагает исправить проблемы, обнаруженные на этапе AUDIT. Следуйте сообщениям в консоли:
-
Автоматическое завершение процессов, занимающих требуемые порты.
Do you want to attempt to free up the busy ports? [y/N]: -
Загрузка модулей ядра.
[WARNING] The following kernel modules are not loaded: - overlay [!] Module is not configured for auto-load on boot Load ALL missing kernel modules now? [y/N]: -
Обновление репозиториев и установка пакетов:
[ INFO ] The following packages are missing: - cloud-init - cloud-guest-utils - curl - network-manager - qemu-guest-agent [ INFO ] Package manager: apt Install the missing packages? [y/N]: Update package repositories before installation? [y/N]: -
Настройка служб: Включение требуемых и отключение конфликтующих служб (например,
ufw,systemd-resolved).[WARNING] Services that required to be ENABLED: - cloud-init-local (currently disabled) - cloud-config (currently disabled) - cloud-final (currently disabled) [WARNING] Services that required to be DISABLED: - ufw (currently enabled) Fix service states? [y/N]: -
Настройка синхронизации времени.
[ INFO ] Time synchronization service is not properly configured. Required service: chrony Required package: chrony Configure time synchronization? [y/N]: y -
*Смена часового пояса.
Change timezone? [y/N]: y Please enter the desired timezone. Examples: UTC, Europe/Moscow, America/New_York, Asia/Tokyo Available timezones: /usr/share/zoneinfo/ (Press ENTER without input to use default: UTC) -
Включение IPv6.
Enable IPv6? [y/N]: y -
Отключение модуля безопасности.
[ INFO ] APPARMOR is currently enabled on this system. For Nova Container Platform, apparmor required to be disabled. This requires adding GRUB parameter: apparmor=0 Disable APPARMOR? [y/N]: -
Создание конфигурации Cloud-init.
[ INFO ] Cloud-init configuration is required for libvirt/KVM (NoCloud). Required actions: - Create /etc/cloud/cloud.cfg - Create /etc/cloud/cloud.cfg.d/90_node-bootstrap.cfg - Enable cloud-init service Configure cloud-init? [y/N]: y -
Настройка сетевых параметров в зависимости от ОС.
Configure network settings? [y/N]: y [ INFO ] Configuring Astra Linux network... [ INFO ] Configuring /etc/network/interfaces... [OK] Done. [ INFO ] Creating /etc/NetworkManager/conf.d/managed.conf... [OK] Done. Enabling service 'NetworkManager'... [OK] enabled. [ INFO ] Configuration Summary: --------------------- Operations succeeded: 3 Operations failed: 0 [OK] OS specific settings has been configured successfully. [!] IMPORTANT: A reboot may be required for changes to take full effect. -
Создание пользователя для развертывания NCP, ключей SSH.
Create user for install Nova Container Platform? [y/N]: Default username [nova-install]: demo-user Enter GECOS (User description/full name) []: demo How would you like to configure SSH access for 'demo-user'? -
Удаление идендификаторов ОС, SSH-хост-ключей (только при подготовке шаблона виртуальной машины).
[ INFO ] System cleanup is required before creating VM image. [ INFO ] This will remove: - Machine IDs and logs - DHCP leases and network state - SSH host keys - User history and temporary files [ INFO ] Infrastructure: ZVIRT zVirt cleanup commands: - cloud-init clean - truncate machine-id and logs - remove udev persistent net rules - clear DHCP and NetworkManager state - remove netplan cloud-init configs - remove SSH host keys - reset hostname [WARNING] This will reset system identity. Continue only if creating VM image. Perform system cleanup? [y/N]:
4.4. Этап 4. Завершение
-
Запрос на удаление файла
node_config.env.Рекомендуется удалить файл в целях безопасности, если он не требуется для повторного использования.
--== STAGE 4: COMPLETE ==-- [ INFO ] All configuration steps have been completed. [ INFO ] Configuration saved to: ./node_config.env [ INFO ] Configuration file: ./node_config.env This file contains answers and settings used during this run. For security reasons, the script may delete ./node_config.env after execution. Delete configuration file './node_config.env' and log? [y/N]: -
Выводится уведомление о параметрах, требующих перезагрузки (IPv6, GRUB, Cleanup).
[ INFO ] Some changes require a reboot to take effect: - IPv6 enable - GRUB kernel parameters updated - System cleanup (VM image preparation) -
Скрипт предложит повторно запустить этап 2, чтобы убедиться, что все предупреждения (
WARNING) устранены:Press Enter to continue, or 'y' to re-run audit [y/N]: -
Выберите действие с системой: перезагрузка, выключение или выход в консоль:
Select system power action [1] Reboot the system now [2] Shutdown the system now [3] Do not reboot (exit to shell)