Установка
Требования#
Требования к серверам#
- серверы на Linux из семейств Debian-compatible или RHEL-compatible;
- версия ядра Linux не ниже
5; - локальные средства host firewall (
firewalld,ufwи аналогичные) на серверах SmartCPD должны быть отключены; - для выполнения setup нужен пользователь с правами запуска команд
dockerиsudo.
Worker-ноды#
Для worker-нод рекомендуется значение vm.swappiness=10.
Это снижает вероятность лишнего вытеснения памяти в swap на latency-чувствительном контуре обработки вызовов.
Подробности по интерпретации swap и memory pressure описаны в документе Troubleshooting.
Требования к Docker#
- должен быть установлен Docker версии не ниже
26; - версия Docker должна быть одинаковой на всех серверах установки;
- если на серверах используются
SELinuxилиAppArmor, должны применяться стандартные механизмы безопасности Docker.
Рекомендуемые материалы Docker:
Доступ к артефактам#
- все серверы должны иметь доступ к Docker-репозиторию Altuera
cr.repo.altuera.ru; - доступ к репозиторию запрашивается у аккаунт-менеджера Altuera.
Если доступ к
cr.repo.altuera.ruотсутствует, образы необходимо заранее подготовить и загрузить на все серверы, участвующие в установке SmartCPD. Для подготовки offline-набора и его загрузки на целевые серверы можно использовать командыimages-saveиimages-loadскриптаsmartcpd-setup.sh, см. Справка поsmartcpd-setup.sh.
Требования к размещению ролей#
- до начала установки должны быть определены серверы, на которые будут назначены роли
service,balancer,worker,analyzer; - состав ролей и их допустимое совмещение должны соответствовать выбранной схеме развертывания.
Требования к ролям нод описаны в разделе Роли нод SmartCPD, а требования к HA-схеме и размещению контуров — в разделе Поддерживаемая HA-конфигурация.
Требования к хранилищам#
SmartCPD использует два корневых пути хранения данных:
Local data root, по умолчанию/opt/scpd;Shared data root, по умолчанию/opt/shared_data.
Local data root используется для данных конкретной ноды. Этот путь должен быть подготовлен на всех серверах, участвующих в установке SmartCPD.
Shared data root используется для компонентов, которым требуется переносимое состояние. В отказоустойчивой схеме этот путь должен быть подготовлен и примонтирован по одному и тому же пути на всех серверах, где используется общее хранилище.
Использование хранилищ по ролям:
service- используетLocal data root, а в HA-схеме такжеShared data root;balancer- используетLocal data root;worker- используетLocal data root;analyzer- используетLocal data root.корневые пути должны быть одинаковыми на всех серверах, где они используются;
корневые пути должны быть доступны пользователю контейнеров по заданным
uidиgid;корневые пути подготавливаются до начала установки;
необходимые рабочие подкаталоги внутри этих путей создаются setup-скриптами.
Если отказоустойчивое распределенное хранилище не используется, в параметре Shared data root можно указать путь локального хранилища.
Архитектурная модель local/shared storage описана в разделе Хранилища данных, включая подраздел Отказоустойчивое распределенное хранилище данных.
Состав поставки#
Поставка setup SmartCPD строится вокруг каталога setup/.
В состав поставки входят:
smartcpd-docker-setup.shдля настройки Docker на сервере и Docker Swarm, подробнее в документе Настройка Docker и Docker Swarm;smartcpd-setup.shдля подготовки конфигурации SmartCPD, генерации stack-артефактов и deployment;smartcpd-stack-template.ymlкак основной шаблон стека из поставки;versions.envс версией поставки;db/postgresсо SQL-скриптами для подготовки PostgreSQL.
В ходе setup формируются и используются следующие state-файлы и runtime-артефакты:
smartcpd-setup.envкак сохраненные параметры setup;stack/compose.generated.ymlкак сгенерированный stack из шаблона;stack/compose.runtime.ymlкак итоговый compose-файл с учетомcompose.override.yml;stack/smartcpd-node-*-setup.shкак сгенерированные скрипты настройки нод;images/как каталог для offline-набора образов;backup/как каталог с резервными копиями параметров setup и сгенерированных файлов стека.
Сгенерированные файлы в stack/ и docker/ считаются рабочими файлами setup.
Их не следует редактировать вручную, если это не предусмотрено отдельным описанным сценарием через compose.override.yml.
Подготовка PostgreSQL#
До запуска setup PostgreSQL должна быть подготовлена со стороны инфраструктуры Заказчика.
Необходимо:
- использовать PostgreSQL версии
14+; - если PostgreSQL используется в отказоустойчивой схеме, подготовить единый endpoint PostgreSQL для SmartCPD; требования к HA-схеме БД описаны в разделе База данных;
- выбрать модель использования PostgreSQL:
per-schemaилиper-service; поддерживаемые модели описаны в разделе Поддерживаемые модели доступа; - обеспечить сетевую доступность PostgreSQL со стороны компонентов SmartCPD;
- создать БД SmartCPD и учетные записи PostgreSQL с правами, соответствующими выбранной модели доступа.
Для подготовки БД можно использовать SQL-скрипты из поставки:
db/postgres/sql/00-create-db-once.sql- создание БД;db/postgres/sql/10-users-required.sql- создание обязательных пользователей и применение базовых прав;db/postgres/sql/20-users-optional.sql- добавление пользователей и прав для моделиper-service.
Подробный состав учетных записей и правила выбора модели доступа описаны в разделе Поддерживаемые модели доступа, а порядок применения SQL-скриптов — в разделе Скрипты поставки.
Данные, которые нужно собрать до установки#
До запуска setup должны быть известны:
Значения по умолчанию, если они есть, указаны в квадратных скобках.
Организация и администратор портала
ИННорганизации, на которую будет выписана лицензия;emailадминистратора портала;- пароль администратора портала;
- имя стека Docker Swarm [
scpd].
Доступ к порталу
- будет ли портал публиковаться напрямую или через
reverse-proxyс терминированием TLS; - полное доменное имя (
FQDN) портала; - порт публикации портала [
443]; - режим публикации портала [
HTTPS]:HTTP(только при использовании reverse-proxy) илиHTTPS; - файл сертификата и файл ключа портала, если используется HTTPS;
Доступ к БД
- хост, порт и имя базы данных PostgreSQL;
- учетные данные пользователей БД в соответствии с выбранной моделью использования PostgreSQL.
Хранилища данных
- локальный путь
Local data root[/opt/scpd]; - путь
Shared data root[/opt/shared_data], если используется переносимое общее хранилище;
Параметры запуска контейнеров и подключения к Docker
uidиgidпользователя контейнеров (опционально);- часовой пояс [
Europe/Moscow]; - диапазон адресов Docker-сетей размера
/16[172.27.0.0]; - способ подключения контейнеров к Docker API: [
unix socket] илиmTLS over TCP; - путь к Docker socket или TCP-параметры и TLS-секреты Docker API;
- имя группы с доступом к Docker socket [
docker];
Доступ к облаку Altuera для обновления моделей
- будет ли использоваться автоматическое обновление моделей из облака Altuera [
Да]; - адрес и параметры
HTTPS proxy, если он используется для доступа в интернет; - CA-файл proxy, если он требуется;
- подготовленные файлы моделей, если обновление будет выполняться вручную.
Сроки хранения данных
- срок хранения статистики [
6 месяцев]; - срок хранения метрик [
6 месяцев]; - размер
docker logsдля каждого контейнера [100 MB]; - срок хранения архива логов [
14 дней]; - размещение архива логов на локальном или сетевом диске [
/opt/scpd/logs]; - лимит места для всех лог-файлов в выбранном месте размещения [
100 GB].
Процесс установки#
Все команды этого раздела выполняются на сервере, который в целевой схеме одновременно будет service-нодой SmartCPD и manager-нодой Docker Swarm, если явно не указано иное.
1. Подготовить рабочую директорию setup#
Скопировать данные поставки в рабочую директорию на выбранном сервере.
Пример:
mkdir -p /opt/scpd/setup
cp -r <поставка>/setup/* /opt/scpd/setup/
cd /opt/scpd/setupСделать setup-скрипты исполняемыми:
chmod +x *.shДальнейшую установку следует выполнять только на этом сервере, если явно не указано иное.
2. Настроить Docker и Docker Swarm#
Docker и Docker Swarm можно подготовить вручную по документу Docker. В этом случае шаг с smartcpd-docker-setup.sh можно пропустить.
Если используется штатный сценарий поставки, запустить smartcpd-docker-setup.sh от имени обычного пользователя с доступом к docker и sudo.
Если Docker Swarm cluster уже создан, это не мешает установке: скрипт подхватит существующие настройки. Если кластер еще не создан, скрипт создаст его автоматически.
В результате будет сгенерирован скрипт:
docker/smartcpd-docker-node-setup.shЭтот файл нужно скопировать на все остальные ноды кластера и выполнить там от имени root или через sudo.
На текущем сервере выполнять этот скрипт не нужно.
После этого следует убедиться, что все серверы добавлены в Docker Swarm cluster:
docker node ls3. Выполнить настройку SmartCPD#
Запустить smartcpd-setup.sh от имени обычного пользователя:
./smartcpd-setup.shЗаполнить необходимые параметры setup.
Если интерактивная настройка была прервана или завершилась ошибкой, ее можно продолжить с того же места:
./smartcpd-setup.sh --continueНа вопрос о запуске установки сразу после завершения setup следует ответить отказом.
4. Разметить ноды#
После завершения интерактивной настройки запустить:
./smartcpd-setup.sh labelsИ назначить всем нодам требуемые роли SmartCPD.
5. Подготовить ноды к запуску#
После генерации setup-артефактов будут сформированы role-specific скрипты:
stack/smartcpd-node-*-setup.shЭти скрипты нужно скопировать на серверы с соответствующими ролями и выполнить на них.
Если сервер совмещает несколько ролей, на него нужно скопировать и последовательно выполнить все требуемые role-specific скрипты.
В отличие от docker/smartcpd-docker-node-setup.sh, role-specific setup scripts должны выполняться и на текущем сервере установки, если ему назначены соответствующие роли.
6. Выполнить запуск#
После подготовки всех нод выполнить:
./smartcpd-setup.sh deployЭта команда развернет или обновит стек SmartCPD в Docker Swarm.
Пример вывода:
==> Deploying stack scpd
Creating service scpd_metrics
Creating service scpd_grafana
Creating service scpd_log2file
Creating service scpd_balancer
Creating service scpd_config-server
Creating service scpd_license-server
Creating service scpd_analyzer
Creating service scpd_markup-api
Creating service scpd_amd
Creating service scpd_billing-server
Creating service scpd_dircleaner
Creating service scpd_mgw
Creating service scpd_resolver
Creating service scpd_docker-health-exporter
Creating service scpd_redis
Creating service scpd_portal-api
Creating service scpd_portal-frontend
Creating service scpd_smartcpd
Creating service scpd_cloud-connector
Creating service scpd_redis-sentinel
overall progress: 0 out of 1 tasks
1/1: starting [============================================> ]Когда появляется строка overall progress: - выполнение команды можно остановить Ctrl+C. Это нормально и не прервет процесс.
7. Дождаться окончания запуска#
Дождаться запуска сервисов. Старт может занять некоторое время - должны скачаться и развернуться образы, запуститься сервисы, развернуться схемы БД. Контролировать процесс можно командой: docker stack services <stack_name>.
Пример нормального состояния после запуска:
ID NAME MODE REPLICAS
wg6z9yolitfm scpd_amd global 1/1
wwo18k7m2q0x scpd_analyzer replicated 1/1
m3jne8o06379 scpd_balancer global 1/1
r3fdm3a2uz1r scpd_billing-server replicated 1/1
0itxyppublbj scpd_cloud-connector replicated 1/1
xxyvu2xghrjj scpd_config-server replicated 1/1
pov175b12p5f scpd_dircleaner global 1/1
b366ca9vdg4u scpd_docker-health-exporter global 4/4
78lawwkpkptl scpd_grafana replicated 1/1
x65pfn71ujxr scpd_license-server replicated 1/1
m85ys0xwsudk scpd_log2file global 4/4
cgywvqj7y72b scpd_markup-api replicated 1/1
ecvcmk4zleyd scpd_metrics replicated 1/1
bo7jcqbbsk04 scpd_mgw global 1/1
ajc9kuhv7yht scpd_portal-api replicated 1/1
60itfaqdjm2p scpd_portal-frontend replicated 1/1
obzll0l9kzdu scpd_redis global 1/1
onijinos2cky scpd_redis-sentinel replicated 2/3 (max 2 per node)
ijb654n9a251 scpd_resolver replicated 1/1
ut26d7hqf0g1 scpd_smartcpd global 1/1Нормальное состояние запуска определяется по столбцу
REPLICAS: для включенных сервисов левое значение не должно быть0, а левое и правое значения должны совпадать.
Исключения:
redis-sentinelможет иметь состояние2/3, если в схеме используется только однаservice-нода;cloud-connector,docker-health-exporterиlog2fileмогут иметь0/0, если они не были включены в setup.
8. Проверка запуска#
После deployment рекомендуется проверить:
- стек появился в Docker Swarm под ожидаемым именем;
- обязательные сервисы перешли в рабочее состояние;
- портал открывается по настроенному адресу;
- авторизация администратора работает;
- сервисы не находятся в цикле постоянных рестартов;
- у
billing-serverнет признаков незавершенной миграции, если выполняется обновление с миграцией данных; - labels нод соответствуют целевой схеме размещения.
Для первичной проверки обычно используются:
docker stack services <stack_name>
docker service ps --no-trunc <service_name>
docker service logs <service_name>Детальная диагностика и типовые проблемы описаны в документе Troubleshooting.
9. После запуска#
- Залогиниться, используя логин и пароль администратора, указанные при установке.
- Загрузить файл временной лицензии при наличии в разделе
Глобальные настройки - Скачать там же Fingerprint и отправить Аккаунт Менеджеру Altuera для генерации постоянной лицензии.
- Загрузить файлы облачных моделей в разделе
Глобальные настройки(только если не используетсяcloud-connector)
Изменение настроек#
Для изменения runtime-параметров SmartCPD следует использовать ./smartcpd-setup.sh.
Изменение через повторный запуск setup#
Для полного изменения параметров через интерактивный сценарий запустить:
./smartcpd-setup.shСкрипт заново пройдет по параметрам setup и сохранит обновленное состояние в smartcpd-setup.env.
Если в ходе такого прохода изменились role-specific настройки нод, следует отказаться от немедленного deployment, выполнить обновленные stack/smartcpd-node-*-setup.sh на нужных нодах и затем отдельно запустить ./smartcpd-setup.sh deploy.
Если интерактивная настройка была прервана, ее можно продолжить:
./smartcpd-setup.sh --continueИзменение через smartcpd-setup.env#
Если требуется точечно изменить runtime-параметры, можно отредактировать smartcpd-setup.env напрямую, затем выполнить:
./smartcpd-setup.sh generate
./smartcpd-setup.sh deploy
generateбезопасен: эта команда только обновляет сгенерированные файлы и сохраняет предыдущее состояние вbackup/.
deployПЕРЕЗАПУСТИТ все инстансы измененных сервисов. Неизмененные сервисы Docker Swarm затронуты не будут.
Если изменения затрагивают role-specific настройки нод, после generate нужно скопировать и при необходимости повторно выполнить соответствующие stack/smartcpd-node-*-setup.sh на нужных нодах, а затем выполнить deploy.
Изменение ролей нод#
Если существующей ноде нужно добавить новую роль SmartCPD, сначала следует выполнить на ней соответствующие stack/smartcpd-node-*-setup.sh для добавляемых ролей.
После этого нужно запустить:
./smartcpd-setup.sh labelsИ назначить ноде новые labels.
После изменения labels Docker Swarm автоматически переразместит сервисы в соответствии с текущей конфигурацией стека. Отдельный deploy для этого сценария не требуется.
Добавление новой ноды#
Перед добавлением новой ноды рекомендуется заново запустить smartcpd-docker-setup.sh на активной service-ноде, которая одновременно является manager-нодой Docker Swarm. Это позволяет заново сгенерировать актуальный docker/smartcpd-docker-node-setup.sh с корректным адресом manager-ноды.
Далее порядок действий такой:
- скопировать
docker/smartcpd-docker-node-setup.shна новую ноду и выполнить его там от имениrootили черезsudo; - скопировать на новую ноду соответствующие
stack/smartcpd-node-*-setup.shдля назначаемых ролей и выполнить их; - запустить
./smartcpd-setup.sh labelsи назначить новой ноде требуемые labels.
После назначения labels Docker Swarm автоматически подключит новую ноду к текущей схеме размещения сервисов. Отдельный deploy для этого сценария не требуется.
Полный останов и повторный запуск#
Если требуется полностью остановить стек и затем поднять его снова, можно использовать:
./smartcpd-setup.sh down
./smartcpd-setup.sh deployПодробности по этим командам описаны ниже в разделе Справка по smartcpd-setup.sh.
Использование compose.override.yml#
compose.override.yml нужен для локальных настроек поверх стандартной схемы установки из поставки.
Основная причина использовать именно compose.override.yml состоит в том, что обновления и повторная генерация файлов стека не должны переписывать такие локальные изменения.
compose.override.yml размещается в корне каталога setup/ рядом с smartcpd-setup.sh.
Этот файл:
- не генерируется setup-скриптом;
- предназначен для локальных настроек поверх основного шаблона из поставки;
- учитывается при сборке
stack/compose.runtime.yml; - не должен заменять базовые параметры setup, которые уже поддерживаются через
smartcpd-setup.sh.
Сгенерированные файлы stack/compose.generated.yml и stack/compose.runtime.yml не следует править вручную.
Для нестандартных локальных настроек нужно использовать compose.override.yml.
После изменения compose.override.yml следует выполнить:
./smartcpd-setup.sh generate
./smartcpd-setup.sh deployПорядок применения такой:
- внести изменения в
compose.override.yml; - выполнить
./smartcpd-setup.sh generate; - выполнить
./smartcpd-setup.sh deploy.
При deploy Docker Swarm применит обновленный runtime compose.
Сервисы, конфигурация которых изменилась через compose.override.yml, будут перезапущены.
Такие изменения следует выполнять в согласованное окно работ, если перезапуск может повлиять на эксплуатацию.
Если compose.override.yml существует, он также попадает в локальные snapshot-бэкапы в каталоге backup/.
Настройка дополнительной безопасности NGINX#
Если для portal-frontend требуется дополнительная настройка TLS и NGINX сверх базового сценария setup, это следует оформлять через compose.override.yml.
Пример:
services:
portal-frontend:
environment:
NGINX_SSL_PROTOCOLS: "TLSv1.2 TLSv1.3"
NGINX_SSL_CIPHERS: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305"
NGINX_SSL_PREFER_SERVER_CIPHERS: "off"
NGINX_SSL_ECDH_CURVE: "X25519:prime256v1:secp384r1"
NGINX_SSL_CONF_COMMAND: ""Такое переопределение нужно, если инсталляция должна соответствовать дополнительным корпоративным требованиям по TLS, наборам шифров и параметрам NGINX.
Настройка таймаута для cloud-connector при использовании proxy#
Если доступ к облаку Altuera идет через прокси и в контуре есть повышенная сетевая задержка, таймаут cloud-connector можно увеличить через compose.override.yml.
Пример:
services:
cloud-connector:
environment:
CLOUD_HTTP_TIMEOUT: "5m"Такое переопределение нужно, если стандартного таймаута недостаточно при работе через корпоративный прокси, проверку TLS-трафика или медленный внешний канал.
Системные изменения, выполняемые скриптами#
smartcpd-setup.sh#
smartcpd-setup.sh работает в пределах текущей рабочей директории setup/ и не изменяет системные файлы сервера вне нее.
Скрипт:
- собирает и сохраняет параметры setup в env-файлы;
- генерирует stack-артефакты в
stack/; - формирует offline-набор образов в
images/; - создает локальные snapshot-бэкапы в
backup/; - выполняет deployment и удаление Docker Swarm stack через Docker CLI.
В штатном сценарии smartcpd-setup.sh не требует sudo и должен запускаться от обычного пользователя с доступом к Docker daemon.
stack/smartcpd-node-*-setup.sh#
Сгенерированные node setup scripts применяются на нодах соответствующих ролей и подготавливают файловую структуру данных для контейнеров SmartCPD.
Эти скрипты могут:
- создавать директории в
Local data root; - создавать директории в
Shared data root, если он используется в текущей схеме установки; - задавать права владения этими каталогами пользователю контейнеров в соответствии с настроенным
uid.
Поскольку такие каталоги обычно размещаются в системных путях, например под /opt, выполнение stack/smartcpd-node-*-setup.sh может требовать root или sudo.
Справка по smartcpd-setup.sh#
smartcpd-setup.sh используется для подготовки конфигурации SmartCPD, генерации stack-артефактов и развертывания или обновления стека в Docker Swarm.
Скрипт следует запускать от имени обычного пользователя с доступом к Docker daemon.
Нода, на которой запускается smartcpd-setup.sh, должна соответствовать одному из двух сценариев:
- для существующей инсталляции это текущая нода SmartCPD с ролями
serviceиmanager; - для новой инсталляции это нода, которая в целевой схеме станет
service-нодой SmartCPD и одновременноmanager-нодой Docker Swarm.
Скрипт поддерживает следующие варианты запуска:
./smartcpd-setup.shЗапускает основной интерактивный setup flow. Скрипт собирает параметры, сохраняет их вsmartcpd-setup.env, генерирует stack-артефакты и предлагает сразу выполнить deployment../smartcpd-setup.sh --helpПоказывает краткую встроенную справку по командам скрипта../smartcpd-setup.sh --continueПродолжает интерактивный setup flow из временного состояния, сохраненного вsmartcpd-setup.tmp.env, после прерванной настройки../smartcpd-setup.sh generateГенерирует файлы стека на основе текущегоsmartcpd-setup.envи перед генерацией сохраняет снимок предыдущего состояния вbackup/. Команда формирует:stack/compose.generated.yml;stack/compose.runtime.yml;stack/smartcpd-node-*-setup.sh.
./smartcpd-setup.sh deployРазворачивает или обновляет SmartCPD stack в Docker Swarm на основеstack/compose.runtime.yml. Еслиcompose.runtime.ymlустарел относительноsmartcpd-setup.env,smartcpd-stack-template.yml,versions.envилиcompose.override.yml, скрипт предложит сначала выполнитьgenerate../smartcpd-setup.sh downОстанавливает и удаляет текущий SmartCPD stack из Docker Swarm после явного подтверждения../smartcpd-setup.sh images-listПоказывает список container images, требуемых для текущего варианта стека../smartcpd-setup.sh images-pullСкачивает образы, необходимые для текущего стека, и при необходимости подготавливает их для дальнейшего сохранения вimages/../smartcpd-setup.sh images-saveСкачивает необходимые образы, сохраняет их вimages/и удаляет локально подтянутые копии после сохранения. Это основной режим для offline или air-gapped поставки../smartcpd-setup.sh images-loadЗагружает все image archives изimages/в локальный Docker../smartcpd-setup.sh labelsПоказывает ноды Swarm и позволяет интерактивно управлять role labels SmartCPD. Через эту команду можно назначать или снимать labels ролей:service;worker;analyzer;balancer.
Env-файлы в корне setup/#
В корне каталога setup/ используются следующие env-файлы:
smartcpd-setup.envОсновной файл с сохраненными параметрами setup, который используется для повторной генерации файлов стека и последующих запусков setup.smartcpd-setup.tmp.envВременное состояние незавершенного интерактивного setup flow. Используется командой./smartcpd-setup.sh --continue.setup.envИсторический файл старого setup, который может использоваться как источник значений для переноса в новую схему setup.
Файлы smartcpd-setup.env и связанные setup-артефакты следует хранить и включать в резервное копирование.
Если они потеряны, повторная генерация конфигурации и последующая переконфигурация потребуют повторного ручного ввода параметров setup.
Дополнительно smartcpd-setup.sh создает локальные резервные копии в каталоге backup/ рядом с setup-файлами.
Эти резервные копии помогают восстановить предыдущее состояние сгенерированных файлов и параметров setup после регенерации или переконфигурации.
Сгенерированные smartcpd-node-*-setup.sh#
smartcpd-setup.sh generate формирует набор node setup scripts в каталоге stack/.
Каждый такой скрипт предназначен для запуска на ноде с соответствующей ролью SmartCPD.
Если на одной ноде совмещено несколько ролей, на ней нужно последовательно выполнить все соответствующие скрипты.
smartcpd-node-global-setup.sh не предназначен для запуска на целевых нодах как скрипт настройки конкретной роли.
Он используется для подключения мониторинга остальных нод и связанных global-настроек.
Подробности по этому контуру описаны в документе Логирование и мониторинг.