Usar API para crear configuraciones a partir de StyleBooks

Después de crear su StyleBook, debe importarlo a Citrix Application Delivery Management (ADM) para usarlo mediante Citrix ADM o mediante las API de Citrix ADM. Citrix ADM valida su StyleBook al importarlo y, si la validación se realiza correctamente, su StyleBook aparece en el catálogo Citrix ADM de StyleBooks, listo para usarse para crear configuraciones.

Ahora puede usar las API de StyleBook para crear configuraciones basadas en este StyleBook. Puede utilizar cualquier herramienta como la herramienta de línea de comandos curl o la extensión del navegador Chrome Postman para enviar solicitudes HTTP a Citrix ADM.

Ejemplo 1

Considere el StyleBook “lb-vserver” en el que ha creadoStyleBook para crear un servidor virtual de equilibrio de carga. Utilice la API REST para crear un paquete de configuración a partir de este StyleBook de la siguiente manera:

Método HTTP: POST

URL: https://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks

Encabezados de SOLICITUD:

Content-Type: Application/json

Aceptar: Application/json

CARGA ÚTIL DEL CUERPO DE LA SOLICITUD:

{
  "configpack":
  {
    "parameters": {
      "name": "lb1",
      "ip": "10.102.117.31"
    },
    "targets":
    [
      {
        "id": "deecee30-f478-4446-9741-a85041903410"
      }
    ]
  }
}

En esta solicitud HTTP, el id (por ejemplo, “deecee30-f478-4446-9741-a85041903410”) es el identificador de instancia de Citrix ADC en el que se crea el servidor virtual de equilibrio de carga lb1 con la dirección IP 10.102.117.31. El ID de instancia de la instancia de Citrix ADC se recupera de Citrix ADM.

Para obtener el ID de una instancia administrada por Citrix ADM, puede utilizar las API de Citrix ADM. Por ejemplo, para recuperar el ID de instancia de una instancia Citrix ADC cuya dirección IP es 192.168.153.160, puede utilizar la siguiente API:

MÉTODO HTTP: GET

URL: https://<ADM-IP>/nitro/v1/config/ns?filter=ip_address:192.168.153.160

ENCABEZADOS DE SOLICITUD:

Aceptar: Application/json

La respuesta contiene el ID en la carga JSON:

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
  "errorcode": 0,
  "message": "Done",
  "operation": "get",
  "resourceType": "ns",
  "username": "nsroot",
  "tenant_name": "Owner",
  "resourceName": "",
  "ns":
  [
    {
    "is_grace": "false",
    "hostname": "",
    "std_bw_config": "0",
    "gateway_deployment": "false",
    "id": "deecee30-f478-4446-9741-a85041903410",
   }
 ]
}

Si la configuración (configpack) se ha creado correctamente, recibirá la siguiente respuesta HTTP:

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
  "configpack":
  {
    "config_id": "1460806080"
  }
}

Ha creado su primera configuración (configpack) que se identifica de forma única mediante el id 1460806080. Puede utilizar este ID para consultar, actualizar o eliminar la configuración.

Ejemplo 2

Puede utilizar el mismo StyleBook para crear otra configuración o configpack y ejecutarlo en las mismas instancias de Citrix ADC o diferentes. En este ejemplo, cree otra configuración y proporcione un nombre y una dirección IP diferentes para el servidor virtual y también especifique LEASTCONNECTION como método de equilibrio de carga. Implemente esta configuración en dos instancias de Citrix ADC.

La solicitud HTTP es la siguiente:

Método HTTP: POST

URL: https://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks

ENCABEZADOS DE SOLICITUD:

Content-Type: Application/json

Aceptar: Application/json

CARGA ÚTIL DEL CUERPO DE LA SOLICITUD:

{
  "configpack":
  {
    "parameters":
    {
      "name": "lb2",
      "ip": "10.102.117.32",
      "lb-alg": "LEASTCONNECTION"
    },
    "targets"
    [
     {"id": "deecee30-f478-4446-9741-a85041903410"},
     {"id": "debecc60-d589-4557-8632-a74032802412"}
    ]
  }
}

En esta solicitud HTTP, el servidor virtual de equilibrio de carga lb2 con la dirección IP 10.102.117.32 se crea en las dos instancias Citrix ADC representadas por los identificadores “deecee30-f478-4446-9741-a85041903410” y “debecc60-d589-4557-8632-a74032802412”.

Al crear correctamente el paquete de configuración, se recibe la siguiente respuesta HTTP:

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
   "configpack":
  {
     "config_id": "1657696292"
  }
}

Este nuevo paquete de configuración tiene un id diferente 165769629. Puede actualizar o eliminar esta configuración mediante este id.

Ejemplo 3

Considere el StyleBook “basic-lb-config” en el que ha creadoStyleBook para crear una configuración básica de equilibrio de carga. Utilice la API REST para crear un paquete de configuración a partir de este StyleBook de la siguiente manera:

Método HTTP: POST

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/basic-lb-config/configpacks

ENCABEZADOS DE SOLICITUD:

Content-Type: Application/json

Aceptar: Application/json

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
  "configpack":
  {
    "parameters":
    {
      "name": "myapp",
      "ip": "10.70.122.25",
      "svc-servers": ["192.168.100.11","192.168.100.12"],
       "svc-port": 8080
    },
    "targets":
    [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
    ]
  }
}

En esta solicitud HTTP, la configuración de equilibrio de carga se ejecuta en dos instancias de Citrix ADC. Puede iniciar sesión en estas instancias de Citrix ADC para comprobar si se crean un servidor virtual y un grupo de servicios con dos servicios enlazados.

Ejemplo 4

Considere el ejemplo compuesto de StyleBook que creó enCrear un StyleBook compuesto. Utilice la API REST para crear un paquete de configuración a partir de este StyleBook de la siguiente manera:

Método HTTP: POST

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks

ENCABEZADOS DE SOLICITUD:

Content-Type: Application/json

Aceptar: Application/json

CARGA ÚTIL DEL CUERPO DE LA SOLICITUD:

{
  "configpack":
  {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53"]
    },
    "targets":
    [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
    ]
  }
}

En esta solicitud HTTP, la configuración se crea en dos instancias de Citrix ADC representadas por sus identificadores. Si inicia sesión en las instancias Citrix ADC, puede ver los objetos de configuración creados por el StyleBook “basic-lb-config” que se importó en el StyleBook “composite-example”. También puede ver un nuevo monitor HTTP llamado “myapp-mon” que formaba parte del StyleBook de “ejemplo compuesto”.

Al crear correctamente el paquete de configuración, se recibe la siguiente respuesta HTTP:

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
  "configpack": {
    "config_id": "4917276817"
  }
}

Actualización de una configuración

Para actualizar esta configuración, por ejemplo, agregando un nuevo servidor back-end con dirección IP 10.102.29.54 a la myapp del servidor virtual de equilibrio de carga, utilice la API para actualizar un paquete de configuración de la siguiente manera:

Método HTTP: PUT

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

ENCABEZADOS DE SOLICITUD:

Content-Type: Application/json

Aceptar: Application/json

CARGA ÚTIL DEL CUERPO DE LA SOLICITUD:

{
  "configpack": {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53","10.102.29.54"]
  },
  "targets":
   [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
   ]
  }
}

Al actualizar correctamente el paquete de configuración, se recibe la siguiente respuesta HTTP:

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

CUERPO DE RESPUESTA ESTO (en caso de éxito):

{
   "configpack": {
     "config-id": "4917276817"
  }
}

Eliminación de una configuración

Para eliminar esta configuración (de todas las instancias de Citrix ADC), puede usar la API para eliminar un paquete de configuración de la siguiente manera:

Al eliminar correctamente el paquete de configuración, se recibe la siguiente respuesta HTTP:

MÉTODO HTTP: ELIMINAR

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

ENCABEZADOS DE SOLICITUD:

Aceptar: Application/json

Encabezados de respuesta esperados (en caso de éxito):

200 OK

Content-Type: Application/json

RESPUESTA PUNTADO (en caso de éxito):

{
   "configpack": {
     "config_id": "4917276817"
  }
}

Puede iniciar sesión en la instancia de Citrix ADC y comprobar que se han eliminado todos los objetos de configuración que forman parte de este paquete de configuración.

Si quiere eliminar la configuración de instancias específicas de Citrix ADC en lugar de todas las instancias, utilice la operación de actualización de configpack descrita anteriormente y cambie el atributo “targets” en la carga útil JSON para eliminar los ID de instancia de Citrix ADC específicos.

Usar API para crear configuraciones a partir de StyleBooks