Als Backbone-Administrator rufen Sie Informationen über Ihren BFC-Server mit der BFC-API ab. Anhand dieser Informationen können Sie die BFC-Konfiguration verstehen, bevor Sie die Umgebung ändern. Zum Beispiel möchten Sie die Konfiguration überprüfen, bevor Sie weitere Grids hinzufügen. Sie erstellen Python-Skripte, die Informationen über die BFC-Umgebung, einschließlich der Produktversion, Server, konfigurierter Netzwerke, verfügbarer Grids und Discovery-Konfiguration, abrufen.
Hinweis: Sie können einen Texteditor verwenden, um die Skripte als GET-Vorgänge zu erstellen. Anschließend können Sie diese Skripte in der BFC-API ausführen.
Folgendes Diagramm zeigt, wie Sie Informationen über den BFC abrufen:
Sie können Informationen zu den Versionsdatensätzen abrufen, die gegenwärtig im BFC verfügbar sind. Die Versionsdatensätze zeigen Informationen, wie z. B. comp_id, esx_version, und Hotfixes an, die Sie installiert haben. Sie können Versionen in "resource_running_state" überprüfen, um CA AppLogic®-Grids zu erstellen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection import json import os import sys bfcHost = os.environ["BFC_HOST"] conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='POST', url='/BFC/1.1/login', body='{"username":"user1","password":"MyPassword"}', headers={'Content-Type':'application/json'}) bfcSession = json.loads(conn.getresponse().read()) print "BFC_SESSION={0}".format(bfcSession)
Die API zeigt Ihre Sitzungs-ID an.
Zum Beispiel erstellen Sie "get_version.py".
from httplib import HTTPSConnection import json import os import sys bfcHost = os.environ["BFC_HOST"] bfcSession = os.environ["BFC_SESSION"] conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='GET', url='/BFC/versions/', headers={'Content-Type':'application/json', 'Authorization':bfcSession}) r1=conn.getresponse() server = json.loads(r1.read()) print 'HTTP Response Code: {0}'.format(r1.status) print json.dumps(server, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Versionsdatensätze an:
[{'version': { 'comp_id': 1385, 'imported_esx_version': { 'esx_version': { 'version': '4.0', 'update': '2',
'build': '261974'}},
'name': '3.0.8', 'supported_esx_versions': [{ 'esx_version': { 'version': '4.0', 'update': '2', 'build': '261974'}}], 'required_bfc_version': '3.0.0', 'state': 'resource_running_state', 'hotfixes': [{ 'hotfix': { 'comp_id': 1412, 'state': 'resource_running_state', 'version_name': '3.0.8', 'name':'lp3561'}}, { 'hotfix': { 'comp_id': 1408, 'state': 'resource_running_state', 'version_name': '3.0.8', 'name':'lp2668'}}, { 'hotfix': { 'comp_id': 1404, 'state': 'resource_running_state', 'version_name': '3.0.8', 'name':'lp1248'}}], 'esx_enabled': True}}]
Zum Beispiel enthält der BFC folgende Hotfixes: lp3561, lp2668 und lp1248.
Sie können Informationen über alle Server im System abrufen, wie z. B. über den Backbone-Server, externe Server und Power-Controller. Zum Beispiel möchten Sie den Servernamen, den Status, die Anzahl der CPU-Kerne und IP-Adressen anzeigen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection import json import os import sys bfcHost = os.environ["BFC_HOST"] bfcSession = os.environ["BFC_SESSION"] conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='GET', url='/BFC/servers', headers={'Content-Type':'application/json', 'Authorization':bfcSession}) r1 = conn.getresponse() print 'HTTP Response Code: {0}'.format(r1.status) servers = json.loads(r1.read()) print json.dumps(servers, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Serverdatensätze an:
[{"server":{ "comp_id":1557, "state":"resource_running_state", "server_state_info":{ "server_state_info":{ "effective_state": "resource_running_state", "category_code_args":[],
"category_code":"core/resources.compute_host.category_compute_host_power", "category_format":"Compute Host Power Status", "code":"core/resources.compute_host.compute_host_normal_powered", "format":"Functioning normally.", "inventorying":false, "applogic_server_name":"srv1", "applogic_server_state":"up", "applogic_server_enabled":true, "has_grid_controller":true,"vmware":false}}, "grid_name":"gridtest", "power_status":"on", "description":[], "discovery_date":1344988800000, "cpu_cores":4,"cpu_speed":3.0,"memory_size":4.0,"disk_count":1, "total_disk_space":146.81302272,"force_manual_power":false, "network_interfaces":[{ "network_interface":{ "connectivity":"backbone", "ip_address":"192.168.0.x", "is_boot":true, "mac_address":"00:01:02:03:04:05", "name":"eth0","speed":1000}},{ "network_interface":{ "connectivity":"external", "ip_address":"10.10.x.x", "is_boot":false, "mac_address":"00:01:02:03:AA:BB", "name":"eth1", "speed":1000}}], "disks": [{ "disk":{ "name":"/dev/sda", "size":146.81302272}}], "power_controllers":[{ "power_controller":{ "comp_id":1574, "ip_address":"10.10.x.x", "mac_address":"00:01:02:03:CC:DD", "type":"controlled", "username":"PowerAdmin__BFC", "password":"*****", "credential_set_time":134580.189, "power_status":"on"} }], "tags":["Blue","Green"]}}]%
Zum Beispiel hat "eth1" die MAC-Adresse "00:01:02:03:AA:BB".
Sie können Informationen über alle konfigurierten Netzwerke im System abrufen. Zum Beispiel möchten Sie die Adressbereiche, die verfügbaren IP-Adressbereiche, die Gateway-Adressen und den Typ anzeigen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection import json import os import sys bfcHost = os.environ["BFC_HOST"] bfcSession = os.environ["BFC_SESSION"] conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='GET', url='/BFC/networks', headers={'Content-Type':'application/json', 'Authorization':bfcSession}) r1 = conn.getresponse() print 'HTTP Response Code: {0}'.format(r1.status) servers = json.loads(r1.read()) print json.dumps(servers, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Netzwerkdatensätze an:
[{"network": {
"address_space": { "ip_space": { "address_pools": [ {"ip_pool": { "available_ranges": [ {"ip_range": { "end_address": "10.10.x.x", "size": 10, "start_address": "10.10.x.x"}}], "num_addresses": 11, "num_available": 10, "num_used": 1, "ranges": [ {"ip_range": { "end_address": "10.10.x.x", "size": 11, "start_address": "10.10.x.x"}}], "type": "hardware", "used_ranges": [ {"ip_range": { "end_address": "10.10.x.x", "size": 1, "start_address": "10.10.x.x"}}]}}, {"ip_pool": { "available_ranges": [], "num_addresses": 4, "num_available": 0, "num_used": 4, "ranges": [ {"ip_range": { "end_address": "10.10.x.x", "size": 4, "start_address": "10.10.x.x"}}], "type": "application", "used_ranges": [ {"ip_range": { "end_address": "10.10.x.x", "size": 4, "start_address": "10.10.x.x"}}]}}], "available_ranges": [[ {"ip_range": { "end_address": "10.10.x.x", "size": 137, "start_address": "10.10.x.x"}},{ "ip_range": { "end_address": "10.10.x.x", "size": 101, "start_address": "10.10.x.x"}}],238]}}, "base_address": "10.10.x.x", "cidr": 24, "comp_id": 1450, "gateway_addresses": [ "10.10.75.1"], "ip_version": "ipv4", "usages": [ "bbc/applogic_external_network"], "vlan_address_spaces": []}},{ "network": { "address_space": { "ip_space": { "address_pools": [{ "ip_pool": { "available_ranges": [], "num_addresses": 1, "num_available": 0, "num_used": 1, "ranges": [{ "ip_range": { "end_address": "10.10.x.x", "size": 1, "start_address": "10.10.x.x"}}], "type": "power", "used_ranges": [ {"ip_range": { "end_address": "10.10.x.xx", "size": 1, "start_address": "10.10.x.x"}}]}}], "available_ranges": [[{ "ip_range": { "end_address": "10.10.x.x", "size": 242, "start_address": "10.10.x.x"}},{ "ip_range": { "end_address": "10.10.x.x", "size": 10, "start_address": "10.10.x.x"}}],252]}}, "base_address": "10.10.x.x", "cidr": 24, "comp_id": 1414, "gateway_addresses": [ "10.10.x.x"], "ip_version": "ipv4", "usages": [ "core/power_network"], "vlan_address_spaces": []}},{ "network": { "address_space": { "ip_space": { "address_pools": [ {"ip_pool": { "available_ranges": [], "num_addresses": 1, "num_available": 0, "num_used": 1, "ranges": [ {"ip_range": { "end_address": "192.168.x.x", "size": 1, "start_address": "192.168.x.x"}}], "type": "hardware", "used_ranges": [ {"ip_range": { "end_address": "192.168.x.x", "size": 1, "start_address": "192.168.x.x"}}]}}], "available_ranges": [ [ {"ip_range": { "end_address": "192.168.x.x", "size": 11, "start_address": "192.168.x.x"}}, "ip_range": { "end_address": "192.168.x.x", "size": 242, "start_address": "192.168.x.x"}}],253]}}, "base_address": "192.168.x.x", "cidr": 24, "comp_id": 1367, "gateway_addresses": [], "ip_version": "ipv4", "usages": [ "bbc/applogic_backbone_network"], "vlan_address_spaces": []}}]
Zum Beispiel ist die Basisadresse des Backbone-Netzwerks 192.168.x.x.
Sie können Informationen über Grids im System abrufen. Zum Beispiel möchten Sie comp_id, Grid-Konfigurationen, Grid-IP-Bereiche und Grid-Beschreibungen anzeigen.
Führen Sie folgende Schritte aus:
session = get_session() conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='GET', url='/BFC/grids', headers={'Content-Type':'application/json', 'Authorization':session}) grids = json.loads(conn.getresponse().read()) print grids
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Grid-Datensätze an:
{"grid":{ "comp_id":1234,"id":2,"name":"SimpleGrid2", "description":"SimpleGrid2 description", "state":"resource_allocated_state", "applogic_version":"3.1.2", "applogic_hotfixes":null, "enable_language_packs":false, "xen_config":{ "grid_server_configuration":{ "min":2,"target":2,"max":2, "selection_criteria":null}}, "esx_config":{ "grid_server_configuration":{ "min":2,"target":2,"max":2, "selection_criteria":null}}, "servers":[],"external_network":"127.x.x.0/24", "app_ips":[{ "grid_ip_range":{ subnet_id:2345,vlan:10, public_private:"public", ip_low:"127.x.x.2", ip_high:"127.x.x.11"}], "app_ip_count":10, "controller_ip":"127.10.10.1","default_vlan":1, "account_id":null,"account_key":null, "oem_kit":null, "vmware_license_key":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX", "global_user_dir":null, "grid_controller_name":null, "grid_controller_user":null, "grid_controller_password":null, "recovery_password":null,"additional_config":null}}, {"grid":{ "comp_id":5678,"id":1,"name":"SimpleGrid1", "description":"SimpleGrid1 description", "state":"resource_allocated_state", "applogic_version":"3.1.1", "applogic_hotfixes":null, "enable_language_packs":false, "xen_config":{ "grid_server_configuration":{ "min":2,"target":2,"max":2, "selection_criteria":null}}, "esx_config":{" grid_server_configuration":{ "min":0,"target":0,"max":0, "selection_criteria":null}}, "servers":[],"external_network":"127.x.x.0/24", "app_ips":[{"grid_ip_range":{ subnet_id:1245,vlan:null, public_private:"public", ip_low:"127.x.x.13",ip_high:"127.x.x.22"}], "app_ip_count":10, "controller_ip":"127.x.x.12","default_vlan":1, "account_id":null,"account_key":null, "oem_kit":null, "vmware_license_key":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX", "global_user_dir":null, "grid_controller_name":null, "grid_controller_user":null, "grid_controller_password":null, "recovery_password":null, "additional_config":null, "external_storage":null}}]}
Zum Beispiel hat "SimpleGrid1" die controller_IP "127.x.x.12".
Sie können Informationen über Ihre Discovery-Konfiguration abrufen. Zum Beispiel möchten Sie den Discovery-Modus eines Servers anzeigen.
Führen Sie folgende Schritte aus:
Zum Beispiel erstellen Sie "get_discovery.py".
from httplib import HTTPSConnection import json import os import sys bfcHost = os.environ["BFC_HOST"] bfcSession = os.environ["BFC_SESSION"] conn = HTTPSConnection(bfcHost + ':8443') conn.connect() conn.request(method='GET', url='/BFC/admin/discovery', headers={'Content-Type':'application/json', 'Authorization':bfcSession}) r1 = conn.getresponse() print 'HTTP Response Code: {0}'.format(r1.status) servers = json.loads(r1.read()) print json.dumps(servers, sort_keys=True, indent=4) print grids
Die API zeigt den HTTP-Rückgabecode 200 und die Discovery-Konfiguration an:
{"discovery":{
"enabled":"true', "mode":"manual", "mac_addresses":00:01:02:03:04:05, "default_tags":"gold"}}
Zum Beispiel ist auf dem Server mit der MAC-Adresse "00:01:02:03:04:05" manuelle Discovery aktiviert.
Sie haben die Informationen über Ihre BFC-Umgebung erfolgreich abgerufen und können Ihre Planungs- oder Wartungsaufgaben ausführen.
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|