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

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

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

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

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

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

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

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

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

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

  5. При развертывании служебных серверов на виртуальной машине, на которой установлены VMware Tools и настроен служебный сервер Salt, убедитесь, что ключ служебного сервера Salt в VMware Tools отображается на вкладке Принято в рабочей области Ключи служебного сервера в SaltStack Config. Дополнительные сведения см. в разделе Включение служебного сервера Salt с помощью VMware Tools.

    Примечание: Если на служебном сервере Salt в VMware Tools используется старая версия, при развертывании служебного сервера на виртуальной машине главный сервер Salt не будет обновлен до последней версии. Главный сервер Salt необходимо обновить вручную. Дополнительные сведения см. в разделе Обновление подключаемого модуля Master.
  6. Убедитесь, что развертываемым компьютерам можно назначить IP-адреса.

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

  7. Прежде чем добавить свойства ресурса SaltStack Config, убедитесь, что облачный шаблон, к которому добавляется служебный сервер, может быть развернут.
  8. Убедитесь в наличии следующих ролей службы:
    1. а.администратор Cloud Assembly;
    2. б.пользователь Cloud Assembly;
    3. в.администратор Service Broker;

    Эти роли службы необходимы для использования ресурса 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.