Como administrador de la red troncal, querrá recuperar la información acerca de su servidor de BFC con la API de BFC. Esta información ayuda a entender la configuración de BFC antes de que se modifique el entorno. Por ejemplo, se recomienda revisar la configuración antes de agregar más grids. Cree scripts de Python que recuperan información acerca del entorno de BFC, como la versión del producto, los servidores, las redes configuradas, los grids disponibles y la configuración de la detección.
Nota: Se puede utilizar un editor de texto para crear los scripts como operaciones GET y, a continuación, ejecutar estos scripts en la API de BFC.
El siguiente diagrama muestra cómo recuperar información acerca de BFC:

Se puede recuperar la información acerca del conjunto de registros de versiones que están disponibles actualmente en BFC. Los registros de versiones indican información como comp_id, esx_version y las revisiones instaladas. Se pueden revisar las versiones incluidas en resource_running_state para crear grids de CA AppLogic®.
Siga los pasos siguientes:
de la importación de httplib HTTPSConnection
importación de 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)
La API muestra el ID de la sesión.
Por ejemplo, cree get_version.py.
de la importación de httplib HTTPSConnection
importación de 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)
La API muestra el código de devolución HTTP 200 y una lista de registros de la versión:
[{'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}}]
Por ejemplo, el BFC incluye las revisiones lp3561, lp2668 y lp1248.
Se puede recuperar la información acerca de todos los servidores del sistema, como el servidor de la red troncal, el servidor externo y el controlador de encendido. Por ejemplo, se recomienda consultar el nombre del servidor, su estado, el número de núcleos de CPU y las direcciones IP.
Siga los pasos siguientes:
de la importación de httplib HTTPSConnection
importación de 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)
La API muestra el código de devolución HTTP 200 y una lista de registros del servidor:
[{"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"]}}]%
Por ejemplo, eth1 tiene la dirección MAC 00:01:02:03:AA:BB.
Se puede recuperar información acerca de todas las redes configuradas en el sistema. Por ejemplo, se recomienda consultar los espacios de dirección, los intervalos de direcciones IP disponibles, las direcciones de la puerta de enlace y el tipo.
Siga los pasos siguientes:
de la importación de httplib HTTPSConnection
importación de 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)
La API muestra el código de devolución HTTP 200 y una lista de registros de la red:
[{"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": []}}]
Por ejemplo, la dirección básica de la red troncal es 192.168.x.x.
Se puede recuperar información acerca de grids del sistema. Por ejemplo, se recomienda consultar comp_id, las configuraciones del grid, los intervalos IP del grid y las descripciones del grid.
Siga los pasos siguientes:
sesión = 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())
imprimir grids
La API muestra el código de devolución HTTP 200 y una lista de registros del grid:
{"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}}]}
Por ejemplo, SimpleGrid1 tiene establecido controller_IP como 127.x.x.12.
Se puede recuperar información acerca de la configuración de la detección. Por ejemplo, se recomienda consultar el modo de detección de un servidor.
Siga los pasos siguientes:
Por ejemplo, cree get_discovery.py.
de la importación de httplib HTTPSConnection
importación de 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)
imprimir grids
La API muestra el código de devolución HTTP 200 y la configuración de la detección:
{"discovery":{
"enabled":"true', "mode":"manual", "mac_addresses":00:01:02:03:04:05, "default_tags":"gold"}}
Por ejemplo, el servidor con la dirección MAC 00:01:02:03:04:05 tiene activada la detección manual.
Ha recuperado correctamente la información acerca de su entorno de BFC y puede realizar las tareas de planificación o mantenimiento.
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|