PDF de programación - Utilización de las APIs de OpenStack

Imágen de pdf Utilización de las APIs de OpenStack

Utilización de las APIs de OpenStackgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 6 de Noviembre del 2017)
724 visualizaciones desde el 6 de Noviembre del 2017
186,8 KB
6 paginas
Creado hace 11a (06/11/2012)
Utilizaci´on de las APIs de OpenStack

Proyecto de Innovaci´on

.

Implantaci´on y puesta a punto de la infraestructura
de un cloud computing privado para el despliegue de

servicios en la nube

IES Gonzalo Nazareno

Dos Hermanas (Sevilla)
IES Los Albares

Cieza (Murcia)

IES La Campi˜na

Arahal (Sevilla)

IES Ingeniero de la Cierva

Murcia

REST (RESTful web API)

• Representational State Transfer (REST)
• Utilizado masivamente en Internet para la transferencia autom´atica

y controlada de informaci´on

• Utiliza HTTP para la comunicaci´on entre el cliente y el servidor
• Se define una URI base en el servidor
• Comunicaci´on entre cliente y servidor:

◦ El cliente realiza una petici´on HTTP (GET, POST, PUT o DELETE)
◦ El servidor contesta con un mensaje en un determinado formato (los

m´as usados son XML y JSON)

• Es m´as sencillo de implementar que otro protocolos como SOAP y

est´a utiliz´andose de forma muy amplia

• Google code, Yahoo Developer Network, twitter API, . . .

2 de 6

APIs de OpenStack

• Los diferentes servicios de OpenStack se comunican entre

s´ı mediante APIs RESTful

• Para cada API se define una URL:

keystone http://192.168.222.1:5000/v2.0

glance http://192.168.222.1:9292/v1
Compute http://192.168.222.1:8774/v2
Volume http://192.168.222.1:8776/v1

EC2 http://192.168.222.1:8773/services/Cloud

• Algunos servicios distinguen entre URL para administrar, red

privada y red p´ublica

• Estas URLs se especifican durante la configuraci´on de keystone
• La descripci´on de los m´etodos de cada API est´an disponibles en

http://api.openstack.org

3 de 6

Ejemplo de utilizaci´on

• Los propios clientes de OpenStack de l´ınea de comandos utilizan

las respectivas APIS:

$ nova -- debug list
connect : (172.22.222.1 , 5000)
send : ’ POST / v2 .0/ tokens HTTP /1.1\ r \ nHost : 1 7 2 . 2 2 . 2 2 2 . 1 : 5 0 0 0 \ r \ nContent - Length :124
\ r \ ncontent - type : a p p l i c a t i o n / json \ r \ naccept - e n c o d i n g : gzip , deflate \ r \ naccept : ap
p l i c a t i o n / json \ r \ nuser - agent : python - n o v a c l i e n t \ r \ n \ r \ n {" auth ": {" t e n a n t N a m e ": " te
st " , " p a s s w o r d C r e d e n t i a l s ": {" u s e r n a m e ": " user " , " p a s s w o r d ": " t e s t p a s s "}}} ’
reply : ’ HTTP /1.1 200 OK \ r \ n ’
connect : (172.22.222.1 , 8774)
send : u ’ GET / v2 / a a a a a a a a 5 8 9 4 4 7 3 c 8 a 9 8 f 8 9 a 8 9 5 c 6 b 2 c / servers / detail HTTP /1.1\ r \ nHost :
1 7 2 . 2 2 . 2 2 2 . 1 : 8 7 7 4 \ r \ nx - auth - project - id : test \ r \ nx - auth - token : e 9 2 3 3 f e f 4 c e 3 4 e e 4 9 f 7 d
b 1 a a a a a a a 1 3 f \ r \ naccept - e n c o d i n g : gzip , deflate \ r \ naccept : a p p l i c a t i o n / json \ r \ nuser
- agent : python - n o v a c l i e n t \ r \ n \ r \ n ’
reply : ’ HTTP /1.1 200 OK \ r \ n ’
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - - - - - - - -+ - - - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - -+
|
|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - - - - - - - -+ - - - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - -+
| V E R I F Y _ R E S I Z E | vlan5 = 1 0 . 0 . 5 . 6 |
| b1724bd0 -34 f4 -4 bf1 -9444 -110 e b 3 5 3 1 6 0 2 | demo9
| e82814aa - fb1d -4 c29 -81 ab - c 3 9 f 9 9 1 8 4 4 1 3 | demo10 | ACTIVE
| vlan5 = 1 0 . 0 . 5 . 3 |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - - - - - - - -+ - - - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - -+

N e t w o r k s

Status

ID

|

Name

|

|

4 de 6

Ejemplo de aplicaci´on propia

# !/ usr / bin / python
# -* - coding : utf -8 -* -

import r e q u e s t s
import json
from getpass import getpass
import C o n f i g P a r s e r

def o b t e n e r _ t o k e n ( url , user , passwd ):

"""
Recibe usuario y p a s s w o r d de K e y s t o n e y d e v u e l v e el token de sesion
"""
c a b e c e r a 1 = { ’ Content - type ’: ’ a p p l i c a t i o n / json ’}
datos = ’ {" auth ":{" p a s s w o r d C r e d e n t i a l s ":{" u s e r n a m e ": " %s " , " p a s s w o r d ": \

" %s "} , " t e n a n t N a m e ":" service "}} ’ % ( user , passwd )

s o l i c i t u d = r e q u e s t s . post ( url + ’ tokens ’ , headers = cabecera1 , data = datos )
if s o l i c i t u d . s t a t u s _ c o d e == 200:

token = json . loads ( s o l i c i t u d . text )[ " access " ][ " token " ][ " id " ]
return token

url = config . get ( " k e y s t o n e " ," url " )
while True :

a d m i n u s e r = r a w _ i n p u t ( " Usuario de K e y s t o n e : " )
a d m i n p a s s = getpass ( " P a s s w o r d : " )
a d m i n t o k e n = o b t e n e r _ t o k e n ( url , adminuser , a d m i n p a s s )
if len ( a d m i n t o k e n ) != 0:

break

5 de 6

El ecosistema
• La utilizaci´on de APIs propicia la creaci´on de muchas aplicaciones

no oficiales

• Es muy f´acil comunicarse con cualquier componente de OpenStack,
por lo que cualquiera puede implementar una funcionalidad nueva,
automatizar procesos o hacer aplicaciones completas.

• Ejemplos: ceilometer, moniker, heat, . . .
• La filosof´ıa abierta y libre de OpenStack hace que algunas de estas

• Estilo OpenStack:

aplicaciones se incluyan posteriormente en la versi´on oficial
(quantum en Folsom o ceilometer en Grizzly)
◦ Python
◦ API
◦ Integraci´on continua (jenkins)
◦ Licencia Apache
◦ Github

6 de 6
  • Links de descarga
http://lwp-l.com/pdf7405

Comentarios de: Utilización de las APIs de OpenStack (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad