Цель этого примера — установить программным способом службу Salt Minion на служебном сервере путем подключения виртуальной машины Windows к среде SaltStack Config.
Необходимые условия
Прежде чем развернуть служебный сервер с помощью API-интерфейса в среде Windows, убедитесь в следующем.
- Имеется среда SaltStack Config с развернутой службой RaaS.
- Установлены главный и служебный серверы Salt.
- Развернута виртуальная машина Windows.
Процедура
- Убедитесь, что в папке etc/salt/cloud.deploy.d на главном сервере Salt содержатся эти файлы.
Примечание: Значение xxx в имени файла, например salt-xxxx-readhat-8-x86_64-amd64.tar.gz, должно совпадать с номером версии главного сервера Salt. Для проверки версии главного сервера Salt выполните команду
salt-master -V на главном сервере Salt.
- Для установки библиотек выполните команды
pip3 install pypsexec smbprotocol и pip3 install impacket --ignore-installed.
- Для идентификации полного доменного имени главного сервера Salt введите команду
salt saltmaster grains.get fqdn.
- Убедитесь, что файл C: \Windows\System32\drivers\etc\hosts на компьютере с ОС Windows настроен с IP-адресом и именем узла или полным доменным именем главного сервера Salt.
- Откройте PowerShell и выполните следующие команды, чтобы открыть необходимые порты.
| Порт |
Команды |
| 445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Set-Item (dir wsman:\localhost\Listener*\Port - Recurse).pspath 445 -ForceRestart-Service winrm |
| 4505–4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- С помощью команды ping [FQDN] убедитесь, что полное доменное имя настроено для главного сервера Salt.
- Введите этот вызов 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>',
)
В среде SSC начинает выполняться функция deploy.minion. Это можно проверить на вкладке «Действия» в пользовательском интерфейсе SSC или выполнив команду
python3, а затем
client.api.minions.get_minio_deployments().
Результаты
Служебный сервер успешно развернут и настроен с использованием среды Windows и вызова API-интерфейса.
Дальнейшие действия
Для проверки развертывания служебного сервера выполните команду
test.ping на служебном сервере с помощью окна «Выполнить команду» или команды
\* test.ping и
\* test.versions в окне команд главного сервера Salt.