Instalar OpenStack
Si desea ponerse en marcha rápidamente, vaya aquí:
Esta respuesta es una mirada más detallada sobre cómo usar Juju con OpenStack.
Alcance
La plataforma OpenStack es potente y sus usos son diversos. Esta sección de documentación se refiere principalmente a la implementación de un sistema OpenStack "estándar" que utiliza, entre otros, componentes canónicos como MAAS, Juju y Ubuntu. En su caso, se mencionarán otros métodos y software.
Supuestos
- Uso de MAAS : siga estas instrucciones primero.
- Uso de juju
- Configuración de red local: en este documento se supone que tiene una configuración de red local adecuada, incluidas interfaces separadas para acceder a la nube OpenStack. Las redes ideales se presentan en la [MAAS] [documentación de MAAS para OpenStack].
Planeando una instalación
Antes de desplegar cualquier servicio, es muy útil hacer un balance de los recursos disponibles y cómo se van a utilizar. OpenStack consta de una serie de servicios interrelacionados (Nova, Swift, etc.) que tienen diferentes demandas en términos de hosts. Por ejemplo, el servicio Swift, que proporciona almacenamiento de objetos, tiene un requisito diferente que el servicio Nova, que proporciona recursos informáticos.
Los requisitos mínimos para cada servicio y las recomendaciones se establecen en la Guía oficial de operaciones de OpenStack
La composición recomendada de los nodos para implementar OpenStack con MAAS y Juju es que todos los nodos en el sistema deben ser capaces de ejecutar CUALQUIERA de los servicios. Esta es la mejor práctica para la robustez del sistema, ya que como cualquier nodo físico debería fallar, otro puede ser reutilizado para tomar su lugar. Obviamente, esto se extiende a cualquier requisito de hardware, como interfaces de red adicionales.
Si por razones de economía o de lo contrario elige utilizar diferentes configuraciones de hardware, debe tener en cuenta que su capacidad para superar las fallas de hardware se reducirá. También será necesario dirigir implementaciones a nodos específicos; consulte la sección en la documentación de MAAS sobre etiquetas .
Crear el archivo de configuración de OpenStack
Utilizaremos los encantos de Juju para desplegar las partes componentes de OpenStack. Cada encanto encapsula todo lo necesario para configurar un servicio en particular. Sin embargo, los servicios individuales tienen muchas opciones de configuración, algunas de las cuales querremos cambiar.
Para hacer esta tarea más fácil y más reproducible, crearemos un archivo de configuración separado con las opciones relevantes para todos los servicios. Esto está escrito en un formato estándar de YAML ( consulte www.yaml.org si no le resulta familiar ).
Aquí hay un ejemplo de openstack-config.yaml:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
Para todos los servicios, podemos configurarlo openstack-origin
para que apunte a una fuente de instalación. En este caso, confiaremos en el valor predeterminado, que señalará las fuentes relevantes para la versión Ubuntu 14.04 LTS Trusty. La configuración adicional para cada servicio se explica en este documento .
Otras configuraciones
Otras configuraciones y opciones de configuración son posibles para la implementación de los servicios OpenStack. Estos se detallan en la documentación de los encantos individuales utilizados por Juju, y se pueden inspeccionar visitando la tienda de encantos Juju en línea y buscando el amuleto usando el cuadro de búsqueda en la parte superior izquierda de la página. los ajustes de configuración se detallan en "Configuración" en la página principal, como se muestra:
Implementando OpenStack con Juju
Ahora que la configuración está definida, podemos usar Juju para implementar y relacionar los servicios.
Inicializando Juju
Juju requiere una cantidad mínima de configuración. Aquí suponemos que ya se ha configurado para funcionar con su clúster MAAS (consulte la [Guía de instalación de Juju] [juju_install] para obtener más información al respecto).
En primer lugar, necesitamos buscar imágenes y herramientas que Juju usará:
juju sync-tools --debug
Entonces podemos crear la instancia de bootstrap:
juju bootstrap --upload-tools --debug
Usamos el interruptor de herramientas de carga para usar las versiones locales de las herramientas que acabamos de obtener. El modificador de depuración dará una salida detallada que puede ser útil. Este proceso puede demorar unos minutos, ya que Juju está creando una instancia e instalando las herramientas. Cuando haya terminado, puede verificar el estado del sistema con el comando:
juju status
Esto debería devolver algo como:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
Implemente los encantos de OpenStack
Ahora que el nodo de arranque de Juju está en funcionamiento, podemos implementar los servicios necesarios para realizar nuestra instalación de OpenStack. Para configurar estos servicios correctamente a medida que se implementan, haremos uso del archivo de configuración que definimos anteriormente, pasándolo junto con el--config
conmutador con cada comando de implementación. Sustituya el nombre y la ruta de su archivo de configuración si es diferente.
Es útil pero no esencial implementar los servicios en el orden siguiente. También se recomienda abrir una ventana de terminal adicional y ejecutar el comando juju debug-log
. Esto generará los registros de todos los servicios a medida que se ejecutan, y puede ser útil para la resolución de problemas.
También se recomienda ejecutar un juju status
comando periódicamente para verificar que cada servicio se haya instalado y se esté ejecutando correctamente. Juju intentará obtener automáticamente la mejor versión posible del amuleto en la tienda de encantamientos en línea. Si está instalando desde una red restringida o cerrada, es posible obtener previamente los encantos necesarios. Consulte [la documentación para encantos fuera de línea] [charms-offline].
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
Agregar relaciones entre los servicios de OpenStack
Aunque los servicios ahora están implementados, aún no están conectados entre sí. Cada servicio existe actualmente de forma aislada. Utilizamos eljuju add-relation
comando para que se conozcan entre sí y configuramos las conexiones y protocolos relevantes. Esta configuración adicional se ocupa de los encantos individuales.
Deberíamos comenzar a agregar relaciones entre encantos configurando el servicio de autorización Keystone y su base de datos, ya que esto será necesario para muchas de las otras conexiones:
juju add-relation keystone mysql
Esperamos hasta que se establezca la relación. Después de que termine, verifíquelo con el estado de juju:
juju status mysql
juju status keystone
Este servicio puede demorar unos minutos en establecerse. Aunque ciertamente es posible continuar agregando relaciones (Juju maneja una cola para acciones pendientes) puede ser contraproducente en términos del tiempo total que toma, ya que muchas de las relaciones se refieren a los mismos servicios.
También se deben establecer las siguientes relaciones:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
Finalmente, la salida del estado de juju debe mostrar todas las relaciones como completas. La nube OpenStack ahora se está ejecutando, pero debe rellenarse con algunos componentes adicionales antes de que esté lista para su uso.
Ken Pepple tiene un libro sobre la implementación de OpenStack: http://shop.oreilly.com/product/0636920021674.do
La compañía de Ken (Internap) tiene el primer servicio comercial de cómputo en la nube OpenStack disponible.
http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/
La nube de Internap se basa en la Plataforma Xen Cloud (XCP) como hipervisor.
fuente
Implementar RDO es un proceso rápido y fácil. La configuración de una nube OpenStack lleva aproximadamente 15 minutos y puede ser tan corta como 3 pasos. http://openstack.redhat.com/Quickstart
fuente