Última versión: 1.0.11-1 BETA
La API de servicio Web sólo está disponible en la versión de disponibilidad limitada de CA 3Tera AppLogic 2.9 y en versiones posteriores.
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). Se puede utilizar cualquiera de los métodos siguientes con la interfaz WS_API REST:
|
Nombre de la propiedad |
Tipo |
Descripción |
|
usr_ip |
IP |
Es la dirección IP en la cual la aplicación WS_API proporciona servicios a los usuarios a través de solicitudes basadas en HTTP o HTTPS. Esta propiedad es obligatoria. |
|
net_ip |
IP |
Es la dirección IP que la aplicación WS_API utiliza para acceder a cualquier dirección de red pública. Esta propiedad es obligatoria. |
|
netmask |
IP |
Máscara de red para la red en la que residen vpn_ip, usr_ip y net_ip. Esta propiedad es obligatoria. |
|
gateway |
IP |
Dirección de la puerta de enlace IP que se utilizará para enrutar tráfico. Esta propiedad se deberá especificar para acceder a la aplicación WS_API desde los host externos a la red IP en la cual WS_API se está ejecutando (es decir, en la mayor parte de los casos). Usar 0.0.0.0 para desactivar. Esta propiedad es obligatoria. |
|
dns1 |
IP |
Dirección IP de un servidor DNS para resoluciones de nombre de host. Esta propiedad es obligatoria. |
|
dns2 |
IP |
Dirección IP de un servidor DNS de copia de seguridad para resoluciones de nombre de host. Valor predeterminado: 0.0.0.0. |
|
allowed_hosts |
Cadena |
Dirección IP o intervalo de direcciones IP en formato CIDR permitidas. Valor predeterminado: 0.0.0.0/0; (todo permitido) |
|
http_mode |
Cadena |
Especifica qué tipo de solicitudes HTP envía la API en usr_ip. Valores válidos: https, http, both. Si se establece como http, la API envía solicitudes basadas en HTTP normal. Si se define como https, la API de REST únicamente envía solicitudes HTTP seguras basadas en encriptado SSL v3.0. Si se establece como both, se envían todas las solicitudes HTTP y HTTPS Valor predeterminado: https. Esta propiedad es efectiva solamente para las solicitudes que se envían el dispositivo in (no tiene efecto cuando se utiliza VPN). Si el modo se establece como http, tenga en cuenta que todo el tráfico es texto sin formato. Se recomienda encarecidamente establecer la propiedad allowed_hosts para las IP que emitirán solicitudes de API. |
|
ssl_opts |
Cadena |
Se pueden proporcionar a la aplicación los argumentos para la configuración de SSL a través de la propiedad ssl_opts como parejas name=value separadas por comas. No es necesario establecer esta propiedad en el modo HTTP normal, es decir si http_mode=http. Valor predeterminado: vacío (no utilizado). Si no se especifica alguno de los argumentos, se asumen un valor vacío. |
|
vpn_ip |
IP |
Esta es la dirección IP en la cual la aplicación WS_API proporciona servicios a los usuarios a través de un túnel VPN seguro. Valor predeterminado: vacío. |
|
vpn_ports |
Cadena |
Lista de puertos para acceder a la API de servicios web. Estos puertos se permitirán a través del túnel VPN y las reglas de cortafuegos. Por lo general, los puertos 80,443 son todos los que se necesitan; valor predeterminado: 80,443 |
|
vpn_type |
Cadena |
Tipo del túnel VPN que hay que establecer. Los valores posibles son: |
|
vpn_authpath |
Cadena |
Información de autenticación para el túnel. Para el modo de funcionamiento secret share, es una ruta relacionada con el archivo de secreto compartido del volumen de datos (por ejemplo, "secret.key" para un archivo "client/secret.key" file). Si el túnel es una clave ssh, esta propiedad indica la ruta, incluido el nombre de archivo, al ssh público (para servidor VPN) o al archivo de clave privado (para cliente VPN) (por ejemplo, "/1/ssh.key" para un archivo de clave público /client/1/ssh.key). Valor predeterminado: vacío |
|
vpn_standby |
Entero |
Especifica si se permite el acceso VPN al inicio de la aplicación. Si es diferente a cero, se desactiva el acceso VPN; de lo contrario se activa. El acceso VPN se puede activar/desactivar en tiempo de ejecución si se inicia/detiene manualmente el dispositivo VPN. Valor predeterminado: 1 (se desactiva el acceso VPN). |
|
in_standby |
Entero |
Especifica si se permite el acceso a la API de REST a través de conexiones basadas en HTTP normal o HTTPS. Cuando esta propiedad se establece como 1 y vpn_standby se establece como 0, solamente se permite el acceso basado en túnel VPN. El acceso a través de in se puede activar/desactivar en tiempo de ejecución mediante el inicio manual del dispositivo in. Valor predeterminado 0 (se permite el acceso HTTP normal y HTTPS). |
|
mon_standby |
Entero |
Determina si se desactiva la monitorización de la aplicación cuando esta se inicie. Si es diferente a cero, se activa la monitorización; de lo contrario se desactiva. La monitorización se puede activar en tiempo de ejecución mediante el inicio manual del dispositivo de monitorización. Valor predeterminado: 1 (la monitorización está desactivada). |
Importante: Las direcciones IP configuradas en las propiedades vpn_ip, usr_ip y net_ip deben ser direcciones IP disponibles en el grid de CA 3Tera AppLogic. Puede encontrarlas, junto con la máscara de red, la puerta de enlace y los servidores DNS, en el cuadro de mandos del grid. Estamos trabajando para hacer posible que CA 3Tera AppLogic proporcione estas direcciones automáticamente.
Aplicación "WS_API"
|
Recursos |
Mín. |
Máx. |
Predeterminado |
|
CPU |
0,55 |
76 |
1.1 |
|
Memoria |
992 MB |
134 GB |
1.656 GB |
|
Ancho de banda |
7 Mbps |
12.5 Gbps |
730 Mbps |
Volúmenes de aplicación
La aplicación utiliza varios volúmenes. Forman parte de la aplicación y ya están configurados en las instancias del dispositivo. No hay ningún volumen que se tenga que configurar en el límite de la aplicación.
|
Volumen |
Tamaño |
Descripción |
|
code |
50 M |
Este volumen se utiliza para almacenar los scripts y el código de la aplicación API. Este volumen se asigna al dispositivo WEB5. De forma predeterminada, se proporciona un volumen lleno denominado "code" para que lo utilice esta aplicación. |
|
conf |
50 M |
Estos volúmenes se utilizan para almacenar todos los datos de configuración para la aplicación API de servicio Web. Incluye el "vdcs.conf" que el usuario rellena para contener información sobre grids remotos, la clave ssh creada por el usuario que se usa para acceder al grid remoto, los certificados SSL generados por la aplicación API que se utilizan para acceder a la API a través de la interfaz HTTPS y los certificados del lado servidor de VPN creados por el usuario que se usan para acceder a la API mediante la interfaz VPN. Este volumen se asigna a un dispositivo NAS. De forma predeterminada, se proporciona un volumen lleno denominado "conf" para que lo utilice esta aplicación. |
|
log_data |
50 M |
Este volumen se utiliza para almacenar datos de registro de la aplicación API. También se utiliza para almacenar los archivos temporales que necesita la aplicación API. Este volumen se asigna al dispositivo NAS. De forma predeterminada, se proporciona un volumen lleno denominado "log_data" para que lo utilice esta aplicación. |
|
mon |
50 M |
Este volumen se utiliza para almacenar datos de monitorización de la aplicación. No existe ningún motivo para que el usuario acceda/modifique este volumen; el dispositivo MON utiliza este volumen internamente. De forma predeterminada, se proporciona un volumen denominado 'mon' para almacenar los datos de monitorización de la aplicación. |
Antes de iniciar la aplicación WS_API, esta tiene que configurarse para acceder a los grids que se van a gestionar a través de la interfaz de servicio Web. Esto implica la creación de un archivo vdcs.conf dentro del subdirectorio de datos del volumen "conf". Es necesario crear una pareja de claves privadas/públicas y hay que configurar un usuario en el controlador de grid de destino con la clave pública generada. Para obtener información sobre cómo rellenar vdcs.conf, configurar claves ssh y crear un usuario del grid para la API del servicio web, consulte la sección sobre configuración.
Se puede configurar WS_API para que funcione en uno de los modos siguientes o en una combinación de ellos:
Uso de HTTP
En este modo, se puede acceder a la API de REST a través de la interfaz basada en HTTP normal.
Por ejemplo, curl "http://usr_ip/api/v1/app/list?vdc=controller_name".
Para iniciar el funcionamiento de la aplicación en este modo, es necesario establecer las propiedades obligatorias a los valores adecuados y la propiedad http_mode como http. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
Uso de HTTPS
En este modo, se puede acceder a la API de REST a través de la interfaz basada en HTTP segura.
Por ejemplo, curl -k -E /path/to/client_key.pem "https://usr_ip/api/v1/app/list?vdc=controller_name".
Para iniciar el funcionamiento de la aplicación en este modo, es necesario establecer las propiedades obligatorias a los valores adecuados y la propiedad http_mode como https. Puede establecer también la propiedad ssl_opts con las opciones indicadas en la tabla de propiedades anterior para que el certificado se firme correctamente. Después de que la aplicación se haya iniciado correctamente, los certificados de cliente se deberán copiar desde el subdirectorio de claves ssl, dentro del volumen "conf", a la aplicación de cliente o explorador que se utilizará para acceder a WS_API. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
Uso del túnel VPN
En este modo, se crea un túnel VPN entre el servidor VPN in_vpn dentro de la aplicación y un cliente VPN en el lado de cliente. Cuando el túnel se ha creado correctamente mediante uno de los distintos tipos de creación de túneles VPN disponibles, se puede acceder a la API de REST a través de la interfaz basada en HTTP normal.
Por ejemplo, curl "http://usr_ip/api/v1/app/list?vdc=controller_name".
Para iniciar el funcionamiento de la aplicación en este modo, es necesario establecer las propiedades obligatorias a los valores adecuados, definir la propiedad vpn_ip y establecer el valor vpn_standby como 0. De forma predeterminada, se establece vpn_ports como 80,443, para permitir las conexiones a los puertos 80 y 443 (http y https respectivamente), y se define vpn_type como certificate, para admitir que un cliente VPN pueda conectarse al servidor VPN de la aplicación mediante un túnel basado en certificado SSL. También puede fijar la propiedad in_standby a 1, para que solo se permitan las solicitudes a través del túnel VPN. Se eliminan las solicitudes API de fuera del túnel VPN. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
La infraestructura de la aplicación 'WS_API' de servicios Web de CA 3Tera AppLogic se presenta a continuación:
Tiene los componentes siguientes:

Esta sección describe cómo configurar la aplicación WS_API para que se inicie en uno de los tres modos diferentes de funcionamiento.
Cómo configurar la aplicación WS_API
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data Es vdcs.conf
Este archivo contiene información necesaria para acceder a los grids que se gestionarán mediante la API de REST.
vi vdcs.conf
vdcs
{
vdc controller_name : host = usr_ip or FQDN
{
location = "city, state, country"
latitude = latitude
longitude = longitude
}
# vdc controller_name : host = user_ip or FQDN
# {
# location = "city, state, country"
# latitude = latitude
# longitude = longitude
# }
}
Para generar la pareja de claves:
ssh-keygen -t dsa -f /mnt/vol/data/gridkey Cuando se le pida que introduzca una contraseña, pulse la tecla Intro. NO INTRODUZCA UNA CONTRASEÑA. chmod 600 /mnt/vol/data/gridkey* chown 99:99 /mnt/vol/data/gridkey*
cat /mnt/vol/data/gridkey.pub
user create api@domain.com pwd=- sshkey="ssh-dsa AAA.................xyz"
Se creará el usuario.
El límite de la aplicación se puede configurar ahora para que funcione en uno de los tres modos de funcionamiento.
Modo HTTP
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso HTTP permite las llamadas de API de REST basadas en HTTP simple.
Nota: Este modo se debería utilizar con máxima cautela. Este modo no conlleva ningún control de seguridad y cualquiera puede crear una solicitud de API sin ninguna autenticación. Además, todo el tráfico entre el cliente y la aplicación ws_api_instance está en texto sin formato.
Para configurar la aplicación en el modo HTTP, establezca la propiedad http_mode como http y defina las propiedades obligatorias con los valores adecuados. Por ejemplo:
app config ws_api_instance usr_ip=usr-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 http_mode=http
La aplicación ya se puede iniciar con el comando de inicio de la aplicación o mediante el botón "Iniciar la aplicación" de la GUI.
Modo HTTPS
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso HTTPS permite las llamadas de API de REST basadas en HTTP seguro.
Cómo configurar la aplicación en modo HTTPS
Nota: Si ssl_opts se deja en blanco, se generará un certificado SSL al iniciar la aplicación. Los valores de configuración de las propiedades http_mode y allowed_hosts se puedan dejar con sus valores predeterminados. Por ejemplo:
app config ws_api_instance usr_ip=usr-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 ssl_opts=ssl_country=Country,ssl_state=State,ssl_local=City,ssl_org_name=Organization,ssl_org_unit=Unit,ssl_common_name=Common Name,ssl_email_address=company@domain.com,ssl_export_pass=Passkey
La primera vez que se inicia la aplicación, se crean en el subdirectorio de claves ssl una clave de cliente en formato PEM, formada por el certificado de cliente y una clave privada llamada api_client.pem, y una clave equivalente en formato PKCS12 para los exploradores denominados api_client.p12. El archivo de clave api_client.p12 se puede utilizar para cualquier acceso de API basado en explorador y la clave api_client.pem para cualquier acceso de API no basado en explorador.
Cómo generar más certificados de cliente
Modo VPN
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso VPN permite que las solicitudes HTTP se envíen a través de un túnel VPN seguro.
Cómo configurar la aplicación en modo VPN
Por ejemplo:
app config ws_api_instance usr_ip=usr-ip vpn_ip=vpn-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 vpn_standby=0 in_standby=1
Después de que la aplicación se haya iniciado, el dispositivo de servidor VPN genera los certificados de servidor necesarios y los archivos de claves, en caso de que estos aún no estén presentes.
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client Archivo de clave y certificado SSL de cliente generados. ============================================== Estos archivos, junto con el archivo de certificado de CA, se deben copiar al servidor VPN en el subdirectorio /client/ del volumen de datos o del volumen fs-mounted. Se debería especificar una ruta a los archivos cliente (client.a1c65e2bae3d0b57) en la propiedad auth_path. Ubicación de los archivos: Certificado de cliente: /mnt/data/server/client.a1c65e2bae3d0b57.crt Archivo de clave de cliente: /mnt/data/server/client.a1c65e2bae3d0b57.key Archivo de certificado de CA situado en /mnt/data/server/ca.crt
El certificado de cliente (por ejemplo, client.xxxxxxxxxxxxxxxx.crt) y el archivo de clave (por ejemplo, client.xxxxxxxxxxxxxxxx.key) se generan en el subdirectorio del cliente y el certificado de CA (ca.crt) se genera en el subdirectorio del servidor del volumen conf.
Notas
Software de fuente abierta y de terceros utilizado
El siguiente software de terceros de fuente abierta está instalado en el volumen "code".
|
Software |
Versión |
Modificado |
Licencia |
Notas |
|
JSON |
2,15 |
No |
Artistic |
N/D |
|
IPC-Run |
0,82 |
No |
GPLv2 |
N/D |
|
XML-Simple |
1,40 |
No |
Artistic |
N/D |
|
Sort-Naturally |
1,02 |
No |
Artistic |
N/D |
| Copyright © 2011 CA. Todos los derechos reservados. | Enviar correo electrónico a CA Technologies acerca de este tema |