Вы можете написать сценарий tmsh, который будет использоваться локально на BIG-IP для запроса этой информации, или вы можете использовать интерфейс iControl REST для запроса этой информации. Вы можете получить более одного запроса для получения точной информации, поскольку профили и политики скрыты в подколлекциях родительского объекта виртуального сервера. Однако в одном запросе вы можете получить имя, место назначения (IP + порт виртуального сервера) и элементы коллекции профилей, например, с помощью curl или с помощью инструмента Postman:
https://ltm3.test.local/mgmt/tm/ltm/virtual?$select=name,destination,profilesReference&expandSubcollections=true
Это возвращает все виртуальные серверы только с именем, портом ip + и информацией профиля в следующем формате json (для краткости только виртуальный сервер показывает политику на нем):
{
"kind": "tm:ltm:virtual:virtualcollectionstate",
"selfLink": "https://localhost/mgmt/tm/ltm/virtual?$select=name%2Cdestination%2CprofilesReference&expandSubcollections=true&ver=14.0.0",
"items": [
{
"name": "bigvip_443",
"destination": "/Common/192.168.102.60:443",
"profilesReference": {
"link": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles?ver=14.0.0",
"isSubcollection": true,
"items": [
{
"kind": "tm:ltm:virtual:profiles:profilesstate",
"name": "ASM_asm_test_policy",
"partition": "Common",
"fullPath": "/Common/ASM_asm_test_policy",
"generation": 569,
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles/~Common~ASM_asm_test_policy?ver=14.0.0",
"context": "all",
"nameReference": {
"link": "https://localhost/mgmt/tm/security/bot-defense/asm-profile/~Common~ASM_asm_test_policy?ver=14.0.0"
}
},
{
"kind": "tm:ltm:virtual:profiles:profilesstate",
"name": "clientssl",
"partition": "Common",
"fullPath": "/Common/clientssl",
"generation": 553,
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles/~Common~clientssl?ver=14.0.0",
"context": "clientside",
"nameReference": {
"link": "https://localhost/mgmt/tm/ltm/profile/client-ssl/~Common~clientssl?ver=14.0.0"
}
},
{
"kind": "tm:ltm:virtual:profiles:profilesstate",
"name": "http",
"partition": "Common",
"fullPath": "/Common/http",
"generation": 553,
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles/~Common~http?ver=14.0.0",
"context": "all",
"nameReference": {
"link": "https://localhost/mgmt/tm/ltm/profile/http/~Common~http?ver=14.0.0"
}
},
{
"kind": "tm:ltm:virtual:profiles:profilesstate",
"name": "tcp",
"partition": "Common",
"fullPath": "/Common/tcp",
"generation": 553,
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles/~Common~tcp?ver=14.0.0",
"context": "all",
"nameReference": {
"link": "https://localhost/mgmt/tm/ltm/profile/tcp/~Common~tcp?ver=14.0.0"
}
},
{
"kind": "tm:ltm:virtual:profiles:profilesstate",
"name": "websecurity",
"partition": "Common",
"fullPath": "/Common/websecurity",
"generation": 568,
"selfLink": "https://localhost/mgmt/tm/ltm/virtual/~Common~bigvip_443/profiles/~Common~websecurity?ver=14.0.0",
"context": "all",
"nameReference": {
"link": "https://localhost/mgmt/tm/ltm/profile/web-security/~Common~websecurity?ver=14.0.0"
}
}
]
}
},
Это намного чище, если вы пишете сценарий на выбранном вами языке, который возвращает только те данные, которые вы хотите получить с ваших виртуальных серверов, и это можно сделать с удаленной машины, несмотря на то, сколько у вас устройств с большим ip.
Не уверенный, какую версию Visual Studio Вы используете, таким образом, я помещу шаги для любого:
VS 2008 - при открытии resx файла в режиме конструктора существует опция наверху около, Добавляет Ресурс и Удаляет Ресурс, названный Модификатором Доступа, это - выпадающее, где можно изменить сгенерированный код от внутреннего до общественности.
VS 2005 - у Вас нет опции генерировать код как в VS 2008. Это была опция, которая была добавлена из-за этой головной боли. Существует around's работы все же. Вы могли использовать сторонний генератор как этот инструмент , или Вы могли использовать атрибут InternalsVisibleTo в Вашем AssemblyInfo.cs для добавления проектов, которые будут иметь доступ к внутренним классам библиотеки ресурсов.
2008 Visual Studio позволяет Вам выбирать, должен ли сгенерированный класс ресурса быть внутренним или общедоступным. Существует также ResXFileCodeGeneratorEx, который должен сделать это для Visual Studio 2005.
От разработчика набора данных и с видимым окном свойств, существует свойство "Modifier". Для Ваших наборов данных это, вероятно, говорит внутренний.
я не знаю, существует ли установка для установки по умолчанию всех новых наборов данных общественности.