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

Служебные серверы — это агенты, на которых выполняется служба salt-minion. Служба подписывается на задания, опубликованные главным сервером Salt, на котором выполняется служба salt-master. Когда определенное задание применяется к служебному серверу, он его выполняет.

В среде Salt имеется три типа служебных серверов.

Ресурс SaltStack Config можно использовать для развертывания служебных узлов и применения файлов состояния в ходе развертывания компьютеров Linux и Windows. Для добавления или обновления служебных серверов и файлов состояния в существующих развертываниях можно выполнить действие по регулярному обслуживанию Применение конфигурации Salt. В этом действии используется свойство saltConfiguration. Дополнительные сведения о действии по регулярному обслуживанию см. в разделе Какие действия можно выполнять в развертываниях Cloud Assembly.

Если для развертывания служебных серверов и файлов состояния в рамках действия по регулярному обслуживанию использовалось свойство saltConfiguration, попробуйте обновить свои облачные шаблоны, чтобы использовать ресурс SaltStack Config. Свойство saltConfiguration будет признано устаревшим в будущем выпуске и будет заменено на ресурс SaltStack Config вместе с альтернативным действием по регулярному обслуживанию.
Примечание:

Свойство saltConfiguration и ресурс SaltStack Config поддерживаются в одном и том же облачном шаблоне, но не для одного и того же ресурса.

Например, можно создать облачный шаблон с двумя компьютерами. Первый компьютер присоединен к ресурсу SaltStack Config. Второй компьютер не присоединен к ресурсу SaltStack Config, и к нему также не применена конфигурация Salt. После развертывания облачного шаблона для применения конфигурации Salt операцию по регулярному обслуживанию можно выполнить только для второго компьютера. Действие по регулярному обслуживанию для компьютера с ресурсом SaltStack Config будет отключено.

Перед началом работы

  1. Убедитесь, что вы установили SaltStack Config и настроили интеграцию. См. раздел Создание интеграции SaltStack Config в vRealize Automation.

    Сведения о работе SaltStack Config, включая основные понятия, связанные со служебными серверами, см. в разделе Служебные серверы.

  2. В SaltStack Config убедитесь, что преобразование полных доменных имен от служебного сервера к главному серверу работает.
    1. а.Чтобы проверить полное доменное имя на главном сервере Salt в SaltStack Config, выберите Служебные серверы > Все служебные серверы.
    2. б.Отфильтруйте столбец ИД служебного сервера для значения saltmaster.
    3. в.Щелкните saltmaster для просмотра сведений.
    4. г.Убедитесь в правильности значения полного доменного имени.
  3. Если выполняется развертывание служебных серверов на компьютере Linux, убедитесь, что для образов в службе vSphere, которые планируется развернуть с помощью служебного сервера Salt, включены возможности SSH. Протокол SSH используется для удаленного доступа к компьютеру и развертывания служебного сервера.
  4. Если выполняется развертывание служебных серверов на компьютере Windows, убедитесь, что компьютер Windows соответствует требованиям конфигурации, перечисленным в разделе Развертывание служебных серверов Windows.
  5. Убедитесь, что развертываемым компьютерам можно назначить IP-адреса.

    Для SaltStack Config требуется, чтобы компьютеры имели IP-адреса. Используйте IP-адреса общедоступного диапазона IP CIDR для программно-определяемого ЦОД, где находится главный сервер Salt.

  6. Прежде чем добавить свойства ресурса SaltStack Config, убедитесь, что облачный шаблон, к которому добавляется служебный сервер, может быть развернут.

Добавление ресурса SaltStack Config в облачный шаблон

Разработчик облачных шаблонов может добавлять в код YAML свойства, обеспечивающие установку служебного сервера SaltStack Config при развертывании шаблона.

К базовым свойствам, добавляемым в шаблон, относятся удаленный доступ для компьютера, который необходимо развернуть, и свойства конфигурации для ресурса SaltStack Config. В процедуру включены только выбранные свойства. Код YAML содержит другие свойства ресурса SaltStack Config, которые не используются в этом примере. Дополнительные сведения см. на схеме.

В этом примере показано, как добавить имя пользователя и пароль для свойств удаленного доступа, однако можно настроить секретное свойство и добавить его в шаблон. См. пример в разделе Секретные свойства Cloud Assembly.

Процедура

  1. В Cloud Assembly выберите Проектирование > Облачные шаблоны.
  2. Откройте существующий шаблон.
  3. Найдите ресурс SaltStack Config и перетащите его на холст.
  4. Присоедините ресурс SaltStack Config к компьютеру, на котором будет установлен служебный сервер.
  5. На панели кода добавьте свойства к ресурсу Cloud_SaltStack_1.

    Не требуется добавлять все возможные свойства. Значения, используемые в этом примере, описаны в таблице.

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe

    Описание свойств Cloud_SaltStack_1, используемых в этом примере

    Свойство Описание
    masterId В примере схемы masterId имеет значение saltstack_enterprise_installer. Возможно, у вас есть идентификаторы главного сервера (masterID), заданные в SaltStack Config в разделе Администрирование > Ключи главного сервера.
    Узлы Значение hosts — это идентификатор компьютера или кластера компьютеров, на которых необходимо установить служебный сервер. По умолчанию имя компьютера передается в качестве идентификатора служебного сервера в SaltStack Config.

    Рекомендуется выбирать имена компьютеров размером не более 15 символов, особенно если развертывание служебных серверов происходит в ОС Windows. Windows не позволяет использовать имена узлов, длина которых превышает 15 символов.

    Чтобы определить настраиваемое соглашение об именовании для компьютеров, которые необходимо развернуть, см. раздел Настраиваемое именование для развернутых ресурсов в Cloud Assembly.

    saltEnvironment В этом примере sse представляет собой расположение для файлов состояния. Ваш и файлы состояний могут находиться в других папках на файловом сервере в SaltStack Config в разделе Config > Файловый сервер.
    stateFiles В этом примере значение doe.sls представляет собой файл состояния, указанный в каталоге файлового сервера и заданный как saltEnvironment.
    variables variables (переменные) — это значения, которые используются в файле состояния. В этом примере doe.sls принимает значение user.
  6. Добавьте свойства remoteAccess к компьютеру, на котором размещается служебный сервер Salt.

    Значение ключа authentication должно быть usernamePassword или generatedPublicPrivateKey. publicPrivateKey не поддерживается.

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. Убедитесь, что код YAML содержит свойства, аналогичные свойствам в примере ниже.
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
  8. Протестируйте облачный шаблон и разверните его.
    Если развертывание служебного сервера выполнено неудачно, см. раздел Устранение неполадок в развертываниях служебных серверов.
  9. Проверьте свойства конфигурации Salt для развернутого компьютера.
    1. а. Выберите Развертывания > Развертывания и откройте сведения о развертывании.
    2. б. На вкладке Топология щелкните компьютер и разверните свойства на правой панели.

      Снимок экрана с вкладкой «Топология», содержащей свойства конфигурации Salt, развернутые на правой панели. Свойства включают в себя идентификатор главного сервера, среду Salt и файлы состояния.

Проверка служебного сервера в SaltStack Config

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

Процедура

  1. Чтобы открыть SaltStack Config, щелкните меню приложений в правом верхнем углу и выберите пункт Консоль облачных служб.
  2. Щелкните плитку службы SaltStack Config.
  3. В SaltStack Config разверните Ключи служебного сервера и нажмите Принято.
  4. В столбце ИД служебного сервера щелкните значок фильтра и введите имя служебного сервера.
    По умолчанию имя служебного сервера — имя узла виртуальной машины. В этом примере ИД служебного сервера — vra-vm-05.
    Снимок экрана с принятыми ключами служебного сервера в SaltStack Config.
  5. Для просмотра сведений щелкните имя служебного сервера.
    На служебном сервере можно выполнять задания и команды. Например, получение статистики использования дисков. Это задание возвращает статистику использования дисков для служебного сервера.
    Снимок экрана со страницей сведений для примера ИД служебного сервера

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

Ознакомьтесь с распространенными ошибками пользователей при развертывании служебных серверов Salt с помощью ресурса SaltStack Config или свойства saltConfiguration.

Отложенный запуск узла

Если службы Windows или Linux на узле не готовы после развертывания облачного шаблона, в Cloud Assembly может возникнуть ошибка «Сбой при развертывании служебного сервера и/или выполнении файла состояния».

Чтобы устранить эту ошибку, обновите подключаемый модуль Master до последней устойчивой версии. После обновления можно включить параметр конфигурации в /etc/salt/master.d/raas.conf, который предоставляет службам Windows и Linux время для активации до развертывания служебного сервера Salt.

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

  1. Перейдите на вкладку Журнал на странице сведений о развертывании.
  2. Если отображается сообщение об ошибке «Сбой при развертывании служебного сервера и/или выполнении файла состояния», скопируйте идентификатор задания (JID) и откройте SaltStack Config.
  3. В SaltStack Config выберите Действие > Выполнено, чтобы открыть выполненные задания.
  4. В столбце JID нажмите значок фильтра и введите значение JID.
  5. Щелкните JID, чтобы просмотреть страницу с результатами заданий.
  6. Перейдите на вкладку Необработанные данные, чтобы увидеть необработанные выходные данные для задания.

    Windows

    Если последняя строка в необработанных выходных данных для задания содержит сообщение «Не удалось подключиться к узлу: время ожидания истекло», необходимо добавить в /etc/salt/master.d/raas.conf следующий параметр конфигурации, чтобы отложить запуск на 180 секунд.
    sseapi_win_minion_deploy_delay: 180

    Linux

    Если последняя строка в необработанных выходных данных для задания содержит сообщение «Удаленный узел недоступен при использовании указанных учетных данных», необходимо добавить в /etc/salt/master.d/raas.conf следующий параметр конфигурации, чтобы отложить запуск на 90 секунд.
    sseapi_linux_minion_deploy_delay: 90
  7. Перезапустите службу Salt Master:
    systemctl restart salt-master
  8. Повторно разверните облачный шаблон.

    Если при развертывании произошла ошибка, можно увеличить значение параметра задержки и повторно развернуть шаблон.

Следующие шаги

Сведения о возможностях SaltStack Config по управлению ресурсами см. в документации по SaltStack Config.