Цель этого примера — установить программным способом службу Salt Minion на служебном сервере путем подключения виртуальной машины Windows к среде SaltStack Config.
Необходимые условия
Прежде чем развернуть служебный сервер с помощью API-интерфейса в среде Windows, убедитесь в следующем.
- Имеется среда SaltStack Config с развернутой службой RaaS.
- Установлены главный и служебный серверы Salt.
- Развернута виртуальная машина Windows.
Процедура
- Убедитесь, что в папке etc/salt/cloud.deploy.d на главном сервере Salt содержатся эти файлы.
Если файлы отсутствуют, обратитесь в службу поддержки.
Примечание: Значение xxx в имени файла, например
salt-xxxx-windows--x86.tar.gz
, должно совпадать с номером версии главного сервера Salt. Для проверки версии главного сервера Salt выполните команду
salt-master -V на главном сервере Salt.
- На терминале главного сервера Salt установите следующие библиотеки с помощью команд
pip3 install pypsexec smbprotocol
и pip3 install impacket --ignore-installed
.
- Для определения полного доменного имени (FQDN) главного сервера Salt выполните команду
salt saltmaster grains.get fqdn
на терминале главного сервера Salt.
- На компьютере с ОС Windows убедитесь, что файл C:\Windows\System32\drivers\etc\hosts настроен с IP-адресом или полным доменным именем главного сервера Salt.
- При развертывании служебных серверов на компьютере с ОС Windows в Azure откройте PowerShell и выполните следующие команды, чтобы открыть необходимые порты.
Порт |
Команды |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- Если вы не развертываете служебные серверы на компьютере с ОС 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 |
- Выполните команду ping [FQDN] на своем компьютере с ОС Windows и убедитесь, что полное доменное имя для главного сервера Salt настроено.
- Сделайте этот вызов 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.