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

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

Прежде чем развернуть служебный сервер с помощью API-интерфейса в среде Windows, убедитесь в следующем.
  • Имеется среда SaltStack 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. На терминале главного сервера Salt установите следующие библиотеки с помощью команд pip3 install pypsexec smbprotocol и pip3 install impacket --ignore-installed.
  3. Для определения полного доменного имени (FQDN) главного сервера Salt выполните команду salt saltmaster grains.get fqdn на терминале главного сервера Salt.
  4. На компьютере с ОС Windows убедитесь, что файл C:\Windows\System32\drivers\etc\hosts настроен с IP-адресом или полным доменным именем главного сервера Salt.
  5. При развертывании служебных серверов на компьютере с ОС Windows в Azure откройте PowerShell и выполните следующие команды, чтобы открыть необходимые порты.
    Порт Команды
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  6. Если вы не развертываете служебные серверы на компьютере с ОС Windows в Azure, откройте PowerShell и выполните следующие команды, чтобы открыть необходимые порты.
    Порт Команды
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Set-Item (dir wsman:\localhost\Listener*\Port - Recurse).pspath 445 -Force

    Restart-Service winrm
    4505–4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506
  7. Выполните команду ping [FQDN] на своем компьютере с ОС Windows и убедитесь, что полное доменное имя для главного сервера Salt настроено.
    Результаты выполнения команды ping FQDN на компьютере Windows
  8. Сделайте этот вызов API-интерфейса с помощью клиента SSEAPI с корректными учетными данными для своей среды.
    Примечание: Если SaltStack Config интегрирована с vRealize Automation, служба vRealize 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>',
    
    )
    В среде SaltStack Config начинает выполняться функция deploy.minion. Убедиться в том, что задание выполняется, можно на вкладке Действия пользовательского интерфейса SaltStack Config или последовательно введя команды python3 и client.api.minions.get_minion_deployments().

Результаты

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

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

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