Проверьте наличие ожидающих изменений в F5 LTM через оснастку iControl PowerShell

Мы автоматизируем изменения в нашем резервном хосте F5 LTM с помощью оснастки PowerShell iControl.

Мы хотим программно проверить, ожидают ли изменения между нашим резервным и живым хостами F5, прежде чем наша автоматизация внесет какие-либо изменения.

Есть ли способ проверить наличие ожидающих изменений с помощью оснастки iControl или API?

1 ответ

Решение

Я нашел ответ в вики iControl. get_sync_status_overview() метод "получает статус присутствия текущего устройства во всех группах устройств, в которые оно входит"

Ссылка на вики: https://devcentral.f5.com/wiki/iControl.Management__DeviceGroup__SyncStatus.ashx

Я написал следующую функцию в PowerShell, которая может оказаться полезной для других при попытке выполнить такую ​​же операцию. Он вернет true, если устройство автономно или синхронизировано с устройствами в своей группе, вернет false, если на хосте F5 произошли изменения, которые необходимо синхронизировать с группой, и выдаст ошибку во всех других случаях:

function Is-DeviceInSync
{
    <#
    .SYNOPSIS
    Gets the sync status of F5 devices within the device group
    #>

    $syncStatus = (Get-F5.iControl).ManagementDeviceGroup.get_sync_status_overview()

    if ($syncStatus.member_state -eq "MEMBER_STATE_STANDALONE")
    {
        write-host "This F5 device is standalone, no sync is required"
        return $true
    }
    elseif ($syncStatus.member_state -eq "MEMBER_STATE_IN_SYNC")
    {
        write-host "This F5 device is in sync with members of its device group, no sync is required"
        return $true
    }
    elseif ($syncStatus.member_state -eq "MEMBER_STATE_NEED_MANUAL_SYNC")
    {
        write-host "This F5 device is not standalone and changes have been made to this device that have not been synced to the device group"
        return $false
    }
    elseif ($syncStatus.member_state -eq "MEMBER_STATE_SYNCING")
    {
        write-host "This F5 device is currently synching with devices in it's group, waiting 10 seconds before checking again..."
        Start-Sleep -Seconds 10
        Is-DeviceInSync
    }
    else
    {
        throw "This F5 device is not in a stable sync state with devices in it's group, please manually verify the sync state of this device before running this script again"
    }
}

ПРИМЕЧАНИЕ. Эта функция предполагает, что функция Initialize-F5.iControl запущена и пользователь уже прошел проверку подлинности на хосте F5.

Другие вопросы по тегам