После установки и интеграции службы Automation Config также необходимо установить, запустить и зарегистрировать службу Salt Minion на всех узлах, управление которыми будет осуществляться с помощью Automation Config. Для развертывания службы Salt Minion на узлах можно использовать облачные шаблоны VMware Aria Automation или установить эту службу с использованием Secure Shell (SSH).

Система Salt и ее связь с Automation Config

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

  • Управление конфигурацией
  • Автоматизация
  • Подготовка
  • Оркестрация

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

В Salt используется модель «контроллер-клиент», в рамках которой контроллер отправляет команды клиенту, а клиент эти команды выполняет. В экосистеме Salt роль контроллера играет сервер, на котором выполняется служба Salt Master. Он отправляет команды на один или несколько служебных серверов Salt, являющихся узлами, на которых выполняется служба Salt Minion и которые назначены данному главному серверу.

Систему Salt также можно представить в виде модели «издатель-подписчик». Главный сервер публикует задания, которые требуется выполнить, а служебные серверы подписаны на такие задания. Когда определенное задание применяется к такому служебному серверу, он выполняет это задание. Когда служебный сервер завершает выполнение задания, он отправляет возвращаемые данные задания обратно на главный сервер.

Служебные серверы — это узлы, на которых выполняется служба salt-minion. Данная служба прослушивает команды с главного сервера Salt и выполняет запрашиваемые задачи. Служебные серверы можно развертывать из облачных шаблонов VMware Aria Automation.

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

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

  • Установите и настройте систему Automation Config, а затем интегрируйте ее с VMware Aria Automation.
  • Узлы, которыми управляет Automation Config, должны иметь доступ к главному узлу Salt и находиться в той же сети, что и точка интеграции Automation Config, а также сам этот главный узел.
  • Компьютеры vSphere, развернутые в частной сети, должны быть способны устанавливать соединение с интеграцией Automation Config и главным узлом Salt.

Установка службы Salt Minion через SSH

Процесс установки службы Salt Minion с помощью SSH зависит от операционной системы, используемой на этих узлах.

После установки службы Salt Minion выполните следующие действия.
  1. Чтобы настроить каждый служебный сервер для связи с главным сервером, создайте файл master.conf в каталоге /etc/salt/minion.d. В этом файле укажите IP-адрес главного сервера. Например, master: 192.0.2.1.
  2. Запустите службу Minion.

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Повторите предыдущие шаги для всех оставшихся узлов.

Настроив эти файлы Minion так, чтобы они указывали на главный сервер Salt, примите ключи служебных серверов в службе Automation Config в рабочей области «Ключи служебных серверов».

Установка службы Salt Minion с помощью облачных шаблонов VMware Aria Automation

Чтобы развернуть службу Salt Minion с использованием облачных шаблонов, необходимо иметь доступ к cloud-init (Linux) или Cloudbase-init (Windows), а также хорошо знать их особенности. Для добавления служебных серверов Salt к главному серверу Salt, настроенному для интеграции Automation Config, виртуальная машина в облачном шаблоне должна поддерживать cloud-init (Linux) или Cloudbase-init (Windows).

Процедура развертывания службы Salt Minion с помощью облачных шаблонов описана в следующих разделах.

Добавление служебных серверов к главному серверу Salt, настроенному для VMware Aria Automation

При установке службы Automation Config задается IP-адрес главного сервера Salt. Этот IP-адрес используется в качестве свойства masterAddress при развертывании служебных серверов из облачного шаблона VMware Aria Automation.

Установка и развертывание служебных серверов выполняются с помощью сценариев cloud-init или Cloudbase-init в облачном шаблоне или развертывании VMware Aria Automation. Кроме того, можно использовать сопоставление образов, которое представляет сценарий настройки облака, использующий любой из этих форматов. Чтобы было можно добавлять служебные серверы Salt для главного сервера Salt,связанного с интеграцией Automation Config в VMware Aria Automation, целевой компьютер должен поддерживать cloud-init (Linux) или Cloudbase-init (Windows). Сценарий настройки облачной среды VMware Aria Automation поддерживает оба формата.

Настройка ресурса компьютера выполняется в облачном шаблоне со значениями minionId и cloudConfig. Затем работа продолжается с группой свойств SaltStackConfiguration. Группа свойств SaltStackConfiguration создается во время установки и настройки службы Automation Config в VMware Aria Suite Lifecycle. Она содержит свойства masterAddress и masterFingerprint.

Значение minionId должно совпадать со значением, указанным для параметра /salt/minion_id компьютера в разделе cloudConfig кода облачного шаблона.

Примечание: По умолчанию главный сервер определяет служебные по имени узла, но можно также настроить отдельный идентификатор служебного сервера (minion ID). Сведения о настройке идентификатора служебного сервера см. в разделе Настройка идентификатора служебного сервера (необязательно) в документе Установка и обновление Automation Config.
Ниже приведены примеры кода облачного шаблона VMware Aria Automation для ОС Windows и Linux. Следует отметить, что для создания сценария настройки облачной среды можно использовать один из следующих методов.
  • Образ VMware Aria Automation, вызываемый из кода облачного шаблона
  • Сценарий настройки облачной среды, вызываемый из кода облачного шаблона
  • Содержимое сценария настройки облачной среды, которое добавляется непосредственно в код облачного шаблона

Примечание. При развертывании облачного шаблона, содержащего служебные серверы Salt, если развертывание не отображается в Automation Assembler, его можно отобразить с помощью службы Automation Service Broker.

Пример — развертывание на основе Linux и cloud-init

Ниже приведен пример конфигурации облачного шаблона для развертывания служебных серверов для компьютера под управлением Linux, который поддерживает cloud-init.
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

Пример — развертывание на основе Windows и Cloudbase-init

Ниже приведен пример конфигурации облачного шаблона для развертывания служебных серверов для компьютера под управлением Windows, который поддерживает Cloudbase-init.
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

Настройка команд PowerShell

Команды PowerShell настраиваются в разделе cloudConfig облачных шаблонов.

Прежде чем включить команды PowerShell, загрузите пакет Salt Minion с веб-сайта репозитория Salt. Затем выполните следующие действия.
  1. Установите службу Salt Minion на ВМ Windows.
  2. Обновите значение имени главного сервера Salt в конфигурации служебного сервера.
  3. Обновите значение отпечатка пальца главного сервера Salt в конфигурации служебного сервера.
  4. Установите значение minion_id для имени ресурса ВМ, которое будет использоваться для принятия служебного сервера главным сервером Salt.
  5. Перезапустите служебный сервер.

Дополнительные сведения о развертывании служебных серверов Salt

Описание дополнительных методов использования интегрированной службы Automation Config для развертывания служебных серверов Salt из облачного шаблона VMware Aria Automation см. в разделе Assembler и секретные элементы ABX Secret (и как их использовать для установки агентов служебных серверов Automation Config).

Дополнительные общие сведения об определении и развертывании шаблонов Automation Assembler (особенно для тех, кто хорошо знаком с Config, но недавно работает с Aria Automation) см. в разделе Проектирование развертываний Assembler.