Vorheriges Thema: Verwenden der BFC-APINächstes Thema: So konfigurieren Sie Netzwerke mit der BFC-API


So rufen Sie Informationen zum BFC ab

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:

Diagramm, das anzeigt, wie Informationen zum BFC abgerufen werden.

  1. Abrufen der Produktversionsinformationen.
  2. Abrufen der Serverinformationen.
  3. Abrufen der Netzwerkeinformationen.
  4. Abrufen der Grid-Informationen.
  5. Abrufen der Discovery-Informationen.
Abrufen der Produktversionsinformationen

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:

  1. Erstellen Sie ein Skript für eine Anmeldung in der BFC-API, wie z. B. bfc_login.py.
  2. Erstellen Sie das Skript wie im folgenden Beispiel:
    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)
    
  3. Führen Sie das Skript aus.

    Die API zeigt Ihre Sitzungs-ID an.

  4. Erstellen Sie ein Skript für die Versionsinformationen.

    Zum Beispiel erstellen Sie "get_version.py".

  5. Erstellen Sie das Skript wie im folgenden Beispiel:
    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)
    
  6. Führen Sie das Skript aus.

    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.

Abrufen der Serverinformationen

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:

  1. Erstellen Sie ein Skript für die Serverinformationen, wie z. B. "get_servers.py".
  2. Erstellen Sie das Skript wie im folgenden Beispiel:
    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)
    
  3. Führen Sie das Skript aus.

    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".

Abrufen der Netzwerkeinformationen

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:

  1. Erstellen Sie ein Skript für die Netzwerkinformationen, wie z. B. "get_networks.py".
  2. Erstellen Sie das Skript wie im folgenden Beispiel:
    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)
    
  3. Führen Sie das Skript aus.

    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.

Abrufen der Grid-Informationen

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:

  1. Erstellen Sie ein Skript für die Grid-Informationen, wie z. B. "get_grids.py".
  2. Erstellen Sie das Skript wie im folgenden Beispiel:
    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
    
  3. Führen Sie das Skript aus.

    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".

Abrufen der Discovery-Informationen

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:

  1. Erstellen Sie ein Skript für die Discovery-Informationen.

    Zum Beispiel erstellen Sie "get_discovery.py".

  2. Verwenden Sie folgendes Beispiel, und erstellen Sie das Skript:
    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
    
  3. Führen Sie das Skript aus.

    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.