Цель этого примера — установить программным способом службу Salt Minion на служебном сервере путем подключения виртуальной машины Windows к среде Automation Config.

Необходимые условия

Прежде чем развернуть служебный сервер с помощью API-интерфейса в среде Windows, убедитесь в следующем.
  • Имеется среда Automation Config с развернутой службой RaaS.
  • Установлены главный и служебный серверы Salt.
  • Развернута виртуальная машина Windows.

Процедура

  1. Убедитесь, что в папке etc/salt/cloud.deploy.d на главном сервере Salt содержатся эти файлы.
    Список требуемых файлов в каталоге cloud.deploy.d на главном сервере Salt

    Если файлы отсутствуют, обратитесь в службу поддержки.

    Примечание: Значение xxx в имени файла, например salt-xxxx-windows--x86.tar.gz, должно совпадать с номером версии главного сервера Salt. Для проверки версии главного сервера Salt выполните команду salt-master -V на главном сервере Salt.
  2. Если среда физически изолирована, выполните следующие действия.
    1. а. Откройте файл конфигурации RaaS в /etc/raas/raas.
    2. б. Добавьте следующие строки в файл конфигурации.
      minion_deployment:
        airgap_install: true
    3. в. Перезапустите службу RaaS с помощью команды service raas restart.
    Примечание: Если используется защищенная виртуальная машина Linux, в некоторых ситуациях сценарии нельзя запустить из папки /tmp на виртуальной машине.
    • При использовании Automation Assembler 8.10.2 или более поздней версии добавьте свойство additionalAuthParams для ресурса Automation Config в облачном шаблоне. Дополнительные сведения см. в разделе Добавление ресурса Automation Config в облачный шаблон.
      additionalAuthParams:
        profile:
          tmp_dir: /var/cache/salt
    • При использовании Automation Assembler 8.10.1 или более ранней версии измените файл /etc/salt/cloud.providers.d/ssc_saltify_provider.conf с помощью
      ssc_saltify_provider:
        driver: saltify
        tmp_dir: /var/cache/salt
      Если этот файл конфигурации не существует, создайте его и добавьте указанный выше параметр.
  3. На терминале главного сервера Salt установите следующие библиотеки с помощью команд pip3 install pypsexec smbprotocol и pip3 install impacket --ignore-installed.
    Примечание: Этот шаг не требуется выполнять в случае использования LCM для установки устройства Automation Config, которое содержит главный сервер Salt. Однако этот шаг необходим при установке главного сервера Salt вручную.
  4. Для определения полного доменного имени (FQDN) главного сервера Salt выполните команду salt saltmaster grains.get fqdn на терминале главного сервера Salt.
  5. На компьютере с ОС Windows убедитесь, что файл C:\Windows\System32\drivers\etc\hosts настроен с IP-адресом или полным доменным именем главного сервера Salt.
  6. Откройте PowerShell на компьютере Windows и выполните следующую команду, чтобы открыть нужные порты:
    Порт Команды
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  7. На терминале главного сервера Salt используйте эту команду, чтобы открыть порты 4505 и 4506:
    Порт Команды
    4505–4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506

    Дополнительные сведения о модели подключения Salt см. в разделе Общие сведения о Automation Config.

  8. Выполните команду ping [FQDN] на своем компьютере с ОС Windows и убедитесь, что полное доменное имя для главного сервера Salt настроено.
    Результаты выполнения команды ping FQDN на компьютере Windows
  9. Сделайте этот вызов API-интерфейса с помощью клиента SSEAPI с корректными учетными данными для своей среды.
    Примечание: Если Automation Config интегрирована с VMware Aria Automation, служба VMware Aria Automation делает этот вызов API-интерфейса, когда вы развертываете служебные серверы с помощью облачного шаблона.
    from sseapiclient import APIClient
    
    client = APIClient('https://<master-ip>', '<ssc-username>', '<sscpassword>', ssl_validate_cert=False)
    
    
    client.api.minions.deploy_minion(
    
     master_id = '<master-id>',
    
     host_name_ip = '<prospective minion’s ip>',
    
     os = ‘<prospective minion’s os>’,
    
     minion_id = '<desired-minion-name-for-prospective-minion>',
    
     username = '<ssh-username-for-prospective-minion>', 
    
     password = '<ssh-password-for-prospective-minion>',
    
    )
    В среде Automation Config начинает выполняться функция deploy.minion. Убедиться в том, что задание выполняется, можно на вкладке Действия пользовательского интерфейса Automation Config или последовательно введя команды python3 и client.api.minions.get_minion_deployments().

Результаты

Служебный сервер успешно развернут и настроен с использованием среды Windows и вызова API-интерфейса.

Дальнейшие действия

Для проверки развертывания служебного сервера выполните команду test.ping на служебном сервере в окне Выполнить команду или выполните команды \* test.ping и \* test.versions в окне команд главного сервера Salt.