Способы управления RELIANOID API из Windows #
Удаленное управление и автоматизация RELIANOID Балансировщик нагрузки можно эффективно реализовать с помощью noid-cli, программа интерфейса командной строки на основе Perl. noid-cli предназначен для выполнения вызовов API непосредственно из командной строки, что упрощает такие задачи, как настройка виртуальных серверов, мониторинг состояния системы и настройка параметров балансировки нагрузки. Этот инструмент предоставляет набор предопределенных команд, которые абстрагируют сложности взаимодействия API, позволяя администраторам быстро выполнять операции без необходимости вручную создавать HTTP-запросы. Простота использования и интеграция со сценариями оболочки делают его практичным выбором для повседневного обслуживания и быстрой настройки в терминальной среде.
С другой стороны, программирование Скрипт PowerShell с Invoke-RestMethod для управления вызовами API к RELIANOID Load Balancer предлагает большую гибкость и потенциал автоматизации. Скрипты PowerShell могут автоматизировать сложные последовательности взаимодействий API, обрабатывать динамические данные и интегрироваться с другими службами и инструментами на базе Windows. Используя Invoke-RestMethodадминистраторы могут создавать собственные сценарии автоматизации, которые точно соответствуют их эксплуатационным потребностям, например, для организации процедур аварийного переключения, выполнения массовых обновлений или интеграции управления балансировкой нагрузки в более широкие рабочие процессы управления системой. Этот метод использует всю мощь возможностей сценариев PowerShell, включая обработку ошибок, ведение журнала и расширенную обработку данных, что делает его идеальным для сложных задач автоматизации и сценариев интеграции.
В этой статье будут описаны вызовы API с использованием метода Powershell.
Использование Powershell для вызовов API #
Вызов API с помощью PowerShell для автоматизации систем предполагает использование Invoke-RestMethod командлет, который упрощает отправку запросов HTTP и HTTPS к веб-службам RESTful. Этот командлет позволяет взаимодействовать с API-интерфейсами, указывая URL-адрес конечной точки, метод HTTP (GET, POST, PUT, DELETE), заголовки (например, токены авторизации) и текст запроса (обычно в формате JSON). Таким образом вы можете извлекать, создавать, обновлять или удалять ресурсы в целевой системе. Скрипты PowerShell могут автоматизировать повторяющиеся задачи, такие как управление виртуальными машинами, настройка сетевых устройств или получение статуса системы, повышая эффективность и согласованность работы.
Для начала вы обычно определяете конечную точку API и все необходимые учетные данные. Например, вы можете использовать базовую аутентификацию или ключ API в заголовках. Далее, в зависимости от операции API, вам может потребоваться подготовить полезную нагрузку JSON для запросов POST или PUT, которую можно легко создать и преобразовать из объектов PowerShell с помощью ConvertTo-Json командлет. Как только запрос будет сформирован и отправлен, Invoke-RestMethod обрабатывает ответ, которым вы можете в дальнейшем манипулировать или использовать в последующих задачах вашего сценария. Этот оптимизированный процесс делает PowerShell мощным инструментом для системных администраторов и разработчиков, стремящихся автоматизировать и интегрировать различные системы и службы через API.
Предварительные условия для включения удаленной автоматизации API #
Выполнение вызовов API из PowerShell для управления RELIANOID Load Balancer, необходимо выполнить несколько предварительных условий:
Включение разрешений API и создание ключа API #
Во-первых, вам необходимо включить разрешения API для учетной записи пользователя, который будет совершать вызовы. Это включает доступ к веб-интерфейсу балансировщика нагрузки и переход к Система> Пользователь. В этом разделе вы можете настроить учетные записи пользователей и назначить разрешения API. Создайте или выберите учетную запись пользователя и сгенерируйте ключ API, который будет использоваться для аутентификации вызовов API. Если вы используете пользователей управления доступом на основе ролей (RBAC), убедитесь, что их роли включают необходимые разрешения для взаимодействия с API. Этот ключ API необходим для аутентификации и авторизации запросов API из ваших сценариев PowerShell.
Для получения дополнительной информации, пожалуйста, обратитесь к этой статье https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .
Определение конечной точки API #
Во-вторых, вам необходимо определить правильную конечную точку API для подключения к балансировщику нагрузки. Конечная точка API обычно включает базовый URL-адрес вашего балансировщика нагрузки, за которым следуют конкретные пути для различных функций. В случае настройки кластерного балансировщика нагрузки крайне важно использовать общий IP-адрес для конечной точки API. Этот общий IP-адрес гарантирует, что вызов API всегда будет направлен на главный узел, независимо от того, какой узел в данный момент выступает в качестве главного. Использование общего IP-адреса предотвращает проблемы, при которых вызов API может быть сделан на резервном узле, гарантируя, что все конфигурации и операции последовательно применяются к активному главному узлу.
Примеры API Powershell #
Опция ПропуститьПроверка сертификата не мог быть распознан в более старых версиях Powershell. Если это ваш случай, определите эту опцию в начале сценария Powershell:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
Кроме того, необходимо будет добавить следующую строку в наши сценарии Powershell, чтобы избежать ошибки «Invoke-RestMethod: базовое соединение было закрыто: при получении произошла непредвиденная ошибка.».
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Получение сведений о ферме #
Этот сценарий выполняет запрос GET для получения информации о конкретной ферме в RELIANOID Балансировщик нагрузки.
Предпосылки
- Замените с вашим фактическим ключом API.
- Замените <RELIANOID_СЕРВЕР> с фактическим адресом сервера вашего RELIANOID Балансировщик нагрузки.
- Замените с настоящей фермой.
- Убедитесь, что у вас включены необходимые разрешения API.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Определить переменные $apiKey = " " $сервер = "RELIANOID_SERVER>" $farmName = " " # Определите URL-адрес конечной точки API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # Выполните вызов API с помощью Invoke-RestMethod $response = Invoke -RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # Вывод ответа $response
объяснение
1. Переменные:
$apiKey: ваш ключ API.$server: Адрес вашего RELIANOID Балансировщик нагрузки.$farmName: название фермы, о которой вы хотите получить информацию.
2. URL-адрес конечной точки API:
$apiUrl: создается с использованием адреса сервера и имени фермы.
3. Вызов-RestMethod:
- -Ури
$apiUrl: указывает конечную точку API. - -Метод Получить: указывает метод HTTP GET.
- -Заголовки
@{ "API_KEY" = $apiKey }: добавляет ключ API в заголовки запроса. - -Пропустить проверку сертификата: Пропускает проверку сертификата SSL (эквивалент -k в Curl). Это полезно для тестирования или когда сервер использует самозаверяющий сертификат.
4. Выход:
Ответ на вызов API сохраняется в $response переменную, а затем выводится на консоль.
Пожалуйста, обратитесь к официальному Apidoc, чтобы получить дополнительную информацию об этом звонке. https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name
Добавление нового бэкэнда в ферму #
Этот скрипт выполняет запрос POST для добавления нового бэкэнда к определенной службе в ферме на балансировщике нагрузки Relianoid.
Предпосылки
- Замените с вашим фактическим ключом API.
- Замените <RELIANOID_СЕРВЕР> с фактическим адресом сервера вашего RELIANOID Балансировщик нагрузки.
- Замените с настоящей фермой.
- Замените с HTTP-сервисом, в который будет добавлен бэкэнд.
- Замените с IP нового бэкэнда.
- Замените с ПОРТом нового бэкэнда.
- Убедитесь, что у вас включены необходимые разрешения API.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Определить переменные $apiKey = " " $сервер = "RELIANOID_SERVER>" $farmName = " " $serviceName = " " # Определите URL-адрес конечной точки API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # Определите тело запроса $ requestBody = @{ip = " "порт = вес = 1 приоритет = 1 } | ConvertTo-Json # Выполните вызов API с помощью Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Вывод ответа $response
объяснение
1. Переменные:
$apiKey: ваш ключ API.$server: Адрес вашего RELIANOID Балансировщик нагрузки.$farmName: имя фермы, в которую вы хотите добавить новый сервер.$serviceName: имя службы в ферме, куда будет добавлен серверный компонент.
2. URL-адрес конечной точки API:
$apiUrl: создается с использованием адреса сервера, имени фермы и имени службы.
3. Тело запроса:
$requestBody: Содержит полезную нагрузку JSON со сведениями о внутреннем сервере. Он преобразуется в формат JSON с помощью ConvertTo-Json.
4. Вызов-RestMethod:
- -Ури
$apiUrl: указывает конечную точку API. - -Метод Сообщение: указывает метод HTTP POST.
- -Заголовки
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: добавляет Content-Type и api_key к заголовкам запроса. - -Тело
$requestBody: указывает полезную нагрузку JSON для запроса POST. - -Пропустить проверку сертификата: Пропускает проверку сертификата SSL (эквивалент -k в Curl). Это полезно для тестирования или когда сервер использует самозаверяющий сертификат.
5. Выход:
Ответ на вызов API сохраняется в $response переменную, а затем выводится на консоль.
Пожалуйста, обратитесь к официальному Apidoc, чтобы получить дополнительную информацию об этом звонке. https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend
Включить Backend в режиме обслуживания #
Этот сценарий выполняет запрос PUT, чтобы перевести внутренний сервер в режим обслуживания на RELIANOID Балансировщик нагрузки.
Предпосылки
- Замените с вашим фактическим ключом API.
- Замените <RELIANOID_СЕРВЕР> с фактическим адресом сервера вашего RELIANOID Балансировщик нагрузки.
- Замените с настоящей фермой.
- Замените со службой HTTP, где серверная часть будет находиться на обслуживании.
- Замените с идентификатором серверной части, чтобы изменить режим обслуживания.
- Убедитесь, что у вас включены необходимые разрешения API.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Определить переменные $apiKey = " " $сервер = "RELIANOID_SERVER>" $farmName = " " $serviceName = " " $backendId = # Определите URL-адрес конечной точки API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # Определите тело запроса $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # Выполните вызов API с помощью Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Вывод ответа $response
объяснение
1. Переменные:
$apiKey: ваш ключ API.$server: Адрес вашего RELIANOID Балансировщик нагрузки.$farmName: добавляется имя фермы, на которой будет осуществляться обслуживание серверной части.$serviceName: имя службы в ферме, в которой будет обслуживаться серверная часть.$backendId: идентификатор серверной части, которую необходимо перевести в режим обслуживания.
2. URL-адрес конечной точки API:
$apiUrl: создается с использованием адреса сервера, имени фермы и имени службы.
3. Тело запроса:
$requestBody: содержит полезные данные JSON с действием и режимом для перевода серверной части в режим обслуживания. Он преобразуется в формат JSON с помощью ConvertTo-Json.
4. Вызов-RestMethod:
- -Ури
$apiUrl: указывает конечную точку API. - -Метод Став: указывает метод HTTP PUT.
- -Заголовки
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: добавляет Content-Type и api_key к заголовкам запроса. - -Тело
$requestBody: указывает полезную нагрузку JSON для запроса PUT. - -Пропустить проверку сертификата: Пропускает проверку сертификата SSL (эквивалент -k в Curl). Это полезно для тестирования или когда сервер использует самозаверяющий сертификат.
5. Выход:
Ответ на вызов API сохраняется в $response переменную, а затем выводится на консоль.
Пожалуйста, обратитесь к официальному Apidoc, чтобы получить дополнительную информацию об этом звонке. https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance
Дополнительная документация по API #
Для получения более подробной информации о вызовах API, доступных для управления RELIANOID Load Balancer, вы можете обратиться к официальной документации API по адресу RELIANOID Документация по API. Этот всеобъемлющий ресурс предоставляет подробные описания каждой конечной точки API, включая необходимые методы HTTP, параметры запроса и форматы ответов.
Документация структурирована так, чтобы помочь вам понять, как взаимодействовать с различными аспектами балансировщика нагрузки, такими как управление фермами, службами и серверными модулями, а также мониторинг состояния и производительности системы. Каждый вызов API сопровождается примерами и пояснениями, которые помогут вам в процессе формирования запросов и обработки ответов. Это важный ресурс для системных администраторов и разработчиков, желающих автоматизировать и оптимизировать свои задачи по управлению балансировкой нагрузки с помощью API.