При установке SaltStack Config необходимо запустить процесс highstate оркестрации, который есть в установщике SaltStack Config. Процесс highstate выполняется на главном сервере Salt для настройки среды, содержащей несколько узлов. Он устанавливает базовую архитектуру SaltStack Config на трех других узлах, где будут размещены PostgreSQL, Redis и служба RaaS.

Внимание!: Развертывание SaltStack Config в контейнерах не поддерживается. Выполнять его не рекомендуется.

После установки должно быть четыре узла, выполняющих разные функции. Каждый узел также является служебным сервером для главного сервера Salt.

  • Узел главного сервера Salt
  • Узел базы данных PostgreSQL
  • Узел базы данных Redis
  • Узел RaaS, также называемый узлом SaltStack Config
Осторожно!:

Очень важно выполнить все шаги, описанные в разделе Установка Salt на узлах. В частности, необходимо установить зависимости, требуемые для установщика SaltStack Config, на всех четырех узлах, входящих в установку. В противном случае установка на нескольких узлах завершится сбоем.

К необходимым зависимостям относятся следующие.

  • OpenSSL
  • Дополнительные пакеты для Enterprise Linux (EPEL)
  • Шифрование Python
  • Библиотека OpenSSL Python

Высокая доступность

Можно настроить несколько главных серверов Salt или несколько узлов RaaS. Кроме того, можно запустить службу Salt Master на одном узле и объединить две или более других служб на отдельном узле. Процедура настройки архитектуры системы такого типа в данном руководстве описана не полностью.

Для удовлетворения требований применительно к высокой доступности или настраиваемой архитектуре может потребоваться обращение за консультационными услугами. В целом перед настройкой нескольких узлов одинакового типа обычно нужно выполнить сценарий установки с несколькими узлами, а затем настроить дополнительную архитектуру позже.

Дополнительные сведения о высокой доступности см. в Обязательные зависимости SaltStack Config.

Запись основных данных о четырех узлах

Прежде чем приступать к стандартной установке, запишите основные данные о каждом из четырех узлов, участвующих в установке. Вы будете вводить их на разных этапах установки.

Необходимо записать следующие основные данные о каждом из четырех узлов, участвующих в установке.

  • IP-адреса или DNS-имена
  • Идентификаторы служебных серверов

Четко укажите, к какому узлу (узел главного сервера Salt, узел RaaS, узел базы данных PostgreSQL, узел базы данных Redis) относится тот или иной IP-адрес и идентификатор служебного сервера.

Убедитесь в правильности IP-адресов и DNS-имен, так как применение неправильных IP-адресов и DNS-имен может привести к сбою установки с несколькими узлами.

Храните эти данные в легкодоступном месте для использования в будущем. В ходе настройки оркестрации эти данные нужно будет ввести в нескольких параметрах и переменных в файлах конфигурации. Поэтому эти данные рекомендуется держать под рукой на протяжении всего процесса установки.

Примечание:

При работе в виртуализированной среде укажите внутренний адрес, а не общедоступный.

Статические и динамические IP-адреса

Узлам Redis и PostgreSQL нужны статические IP-адреса или DNS-имена, на которые ссылаются файлы конфигурации. В зависимости от способа развертывания узла RaaS ему также может требоваться статический IP-адрес или DNS-имя. Применение динамических IP-адресов в конфигурациях может привести к изменениям в среде и нарушить ее функционирование.

Задание настраиваемого идентификатора служебного сервера (необязательно)

Идентификатор служебного сервера представляет собой уникальное имя, присваиваемое каждому служебному серверу под управлением главного сервера Salt. По умолчанию служебный сервер идентифицирует себя при взаимодействии с главным сервером Salt, используя системное имя узла. Однако можно назначить настраиваемые идентификаторы, которые будут отражать выполняемую функцию или расположение в сети.

При настройке идентификаторов служебных серверов рекомендуется использовать для них краткие, но описательные значения, указывающие их роль. Например, в качестве имени для одного из веб-серверов можно использовать apache-server-1, а для указания его расположения в ЦОД — datacenter-3-rack-2. Основная задача заключается в том, чтобы имена были описательными и удобными для применения в будущем.

Чтобы объявить идентификатор служебного сервера, выполните следующие действия.

  1. В терминале служебного сервера перейдите в каталог, содержащий файл id.conf служебного сервера. Расположение каталога по умолчанию — etc/salt/minion.d/id.conf.
  2. Откройте файл id.conf в редакторе. Измените значение параметра id на пользовательский идентификатор служебного сервера. Например:
    id: postgres-database-1
  3. После ввода идентификатора служебного сервера главный сервер Salt должен принять (или повторно принять) ключи служебного сервера. Процедуру настройки ключей см. в разделе Принятие ключей служебных серверов на главных серверах.

Копирование и редактирование top-файлов состояний

В рамках этой задачи, выполняемой во время установки, необходимо скопировать файлы оркестрации, предоставленные с установщиком SaltStack Config, на узел главного сервера Salt. Затем необходимо отредактировать файлы, чтобы создать ссылки на три узла для RaaS, базы данных Redis и базы данных PostgreSQL.

Чтобы скопировать и отредактировать файлы конфигурации оркестрации, выполните следующие действия.

  1. На главном сервере Salt перейдите в каталог sse-installer.
  2. Скопируйте файлы pillar и файлы состояний из каталога sse_installer в папки pillar_roots и file_roots служебного сервера с помощью следующих команд.
    sudo mkdir /srv/salt
    sudo cp -r salt/sse /srv/salt/
    sudo mkdir /srv/pillar
    sudo cp -r pillar/sse /srv/pillar/
    sudo cp -r pillar/top.sls /srv/pillar/
    sudo cp -r salt/top.sls /srv/salt/
    Важно!:

    В этой процедуре сделано несколько допущений, которые могут не соответствовать структуре ваших каталогов, особенно при наличии существующей установки Salt. Процедура предполагает следующее.

    • На главном сервере Salt используется структура каталогов, заданная по умолчанию. Если структура каталогов была изменена, возможно, процедуру потребуется изменить в соответствии с вашей структурой каталогов.
    • В корневой папке pillar или корневой папке состояния конфигурации еще нет папки с именем sse. Если такая папка существует, возможно, потребуется объединить эти папки вручную.
    • В каталоге pillar или salt еще нет файла с именем top.sls. Если такой файл существует, возможно, потребуется объединить его с существующим файлом вручную.
  3. В каталоге /srv/pillar/ теперь доступен файл с именем top.sls, который был скопирован из установочных файлов на предыдущем шаге. Откройте этот файл в редакторе.
  4. Отредактируйте файл, чтобы задать список идентификаторов служебных серверов (не IP-адресов и не имен DNS) для PostgreSQL, Redis, RaaS и главного сервера Salt. Используйте ранее записанные идентификаторы.

    Например:

    {# Pillar Top File #}
    
    {# Define SSE Servers #}
    
    {% load_yaml as sse_servers %}
      - postgres-database-1
      - redis-database-1
      - saltstack-enterprise-api-server-1
      - saltmaster-1
    {% endload %}
    
    base:
    
    {# Assign Pillar Data to SSE Servers #}
    {% for server in sse_servers %}
      '{{ server }}':
        - sse
    {% endfor %}
  5. Теперь в каталоге /srv/salt/ доступен файл с именем top.sls, который был скопирован на шаге 2. Откройте этот файл в редакторе и убедитесь, что его содержимое совпадает с приведенным ниже.
    base:
    
      {# Target SSE Servers, according to Pillar data #}
      # SSE PostgreSQL Server
      'I@sse_pg_server:{{ grains.id }}':
        - sse.eapi_database
    
      # SSE Redis Server
      'I@sse_redis_server:{{ grains.id }}':
        - sse.eapi_cache
    
      # SSE eAPI Servers
      'I@sse_eapi_servers:{{ grains.id }}':
        - sse.eapi_service
    
      # SSE Salt Masters
      'I@sse_salt_masters:{{ grains.id }}':
        - sse.eapi_plugin
    

Применение процессов highstate к узлам

  1. На главном сервере Salt синхронизируйте параметры grain, чтобы гарантировать, что этот сервер содержит данные grain, необходимые для каждого служебного сервера. Эта операция гарантирует корректное создание данных pillar, используемых функциями SaltStack Config.

    В команде, которая синхронизирует параметры grains, можно как указать все служебные серверы, так и передать список идентификаторов требуемых служебных серверов для узлов (включая главный сервер Salt) в скобках. Например:

    Указание всех служебных серверов

    sudo salt \* saltutil.refresh_grains

    Указание списка служебных серверов

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
  2. Выполните обновление и убедитесь, что каждый служебный сервер получил данные pillar, определенные в файле sse_settings.yaml, и что они выглядят так, как ожидалось.

    В команде, которая обновляет данные pillar, можно как указать все служебные серверы, так и передать список идентификаторов требуемых служебных серверов для узлов (включая главный сервер Salt) в скобках. Например:

    Указание всех служебных серверов

    sudo salt \* saltutil.refresh_pillar

    Указание списка служебных серверов

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
  3. Убедитесь в правильности возвращаемых данных для хранилища pillar.
    sudo salt \* pillar.items

    Убедитесь, что отображаются данные pillar, относящиеся к SaltStack Config.

    Примечание:

    Можно также указать данные pillar для конкретного служебного сервера и убедиться, что эти данные были обновлены.

  4. Запустите команду, которая применяет процесс highstate оркестрации к серверу PostgreSQL. Используйте идентификатор служебного сервера, который вы записали ранее для сервера PostgreSQL.

    Например:

    sudo salt postgres-database-1 state.highstate
  5. Выполните предыдущий шаг для каждого из следующих серверов, заменяя идентификатор служебного сервера для каждого из них.
    • Узел Redis
    • Узел RaaS
    • Узел главного сервера Salt
    Примечание:

    Во время начального применения процесса highstate к главному серверу Salt может появиться следующее сообщение об ошибке: Authenticationerroroccurred. Это сообщение отображается, так как главный сервер Salt еще не проверил подлинность для узла RaaS. Состояние установки подключаемого модуля Master перезапустит службу Salt Master, и проблема будет решена автоматически.

В случае появления каких-либо других ошибок при запуске процессов highstate см. раздел Устранение неполадок.