En esta entrada vamos a continuar con la configuración del servidor controlador, instalando el resto de componentes que nos faltan.
Glance
- Instalamos los paquetes
1 |
sudo apt-get install glance glance-api glance-registry python-glanceclient glance-common |
- Configuramos Glance
- Editamos los archivos /etc/glance/glance-api.conf y /etc/glance/glance-registry.conf:
1 2 3 4 |
sql_connection = mysql://glance:password@localhost/glance admin_tenant_name = service admin_user = glance admin_password = password |
- En el archivo /etc/glance/glance-api.conf modificamos:
1 2 |
notifier_strategy = rabbit rabbit_password = password |
- Reiniciamos los servicios
1 2 |
sudo service glance-api restart sudo service glance-registry restart |
1 |
sudo glance-manage db_sync |
En este punto el servicio ya está funcionando.
- Para crear las máquinas virtuales vamos a utilizar una imagen de Ubuntu para lo que descargamos e importamos una imagen desde el repositorio de Ubuntu
1 |
glance image-create --location http://uec-images.ubuntu.com/releases/12.04/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img --is-public true --disk-format qcow2 --container-format bare --name "Ubuntu-12.04" |
- Comprobamos que la imagen se ha añadido
1 |
glance image-list |
Nova
- Instalamos los paquetes
1 |
sudo apt-get install nova-api nova-cert nova-common nova-scheduler python-nova python-novaclient nova-consoleauth novnc nova-novncproxy |
- Editamos el archivo /etc/nova/api-paste.ini:
1 2 3 |
admin_tenant_name = service admin_user = nova admin_password = password |
- Como vamos a utilizar Cinder, eliminamos todas las referencias a Nova-volume
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
============================================================ [composite:osapi_volume] use = call:nova.api.openstack.urlmap:urlmap_factory /: osvolumeversions /v1: openstack_volume_api_v1 ============================================================ ============================================================ [composite:openstack_volume_api_v1] use = call:nova.api.auth:pipeline_factory noauth = faultwrap sizelimit noauth ratelimit osapi_volume_app_v1 keystone = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_volume_app_v1 keystone_nolimit = faultwrap sizelimit authtoken keystonecontext osapi_volume_app_v1 ============================================================ ============================================================ [app:osapi_volume_app_v1] paste.app_factory = nova.api.openstack.volume:APIRouter.factory ============================================================ ============================================================ [pipeline:osvolumeversions] pipeline = faultwrap osvolumeversionapp [app:osvolumeversionapp] paste.app_factory = nova.api.openstack.volume.versions:Versions.factory ============================================================ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
[DEFAULT] # MySQL Connection # sql_connection=mysql://nova:password@192.168.3.11/nova # nova-scheduler # rabbit_password=password scheduler_driver=nova.scheduler.simple.SimpleScheduler # nova-api # cc_host=192.168.3.11 auth_strategy=keystone s3_host=192.168.3.11 ec2_host=192.168.3.11 nova_url=http://192.168.3.11:8774/v2 ec2_url=http://192.168.3.11:8773/services/Cloud keystone_ec2_url=http://192.168.3.11:5000/v2.0/ec2tokens api_paste_config=/etc/nova/api-paste.ini allow_admin_api=true use_deprecated_auth=false ec2_private_dns_show_ip=True dmz_cidr=169.254.169.254/32 ec2_dmz_host=192.168.3.11 metadata_host=192.168.3.11 metadata_listen=0.0.0.0 enabled_apis=ec2,osapi_compute,metadata # Networking # network_api_class=nova.network.quantumv2.api.API quantum_url=http://192.168.3.11:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=password quantum_admin_auth_url=http://192.168.3.11:35357/v2.0 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver # Cinder # volume_api_class=nova.volume.cinder.API # Glance # glance_api_servers=192.168.3.11:9292 image_service=nova.image.glance.GlanceImageService # novnc # novnc_enable=true novncproxy_base_url=http://192.168.4.3:6080/vnc_auto.html vncserver_proxyclient_address=192.168.3.11 vncserver_listen=0.0.0.0 # Misc # logdir=/var/log/nova state_path=/var/lib/nova lock_path=/var/lock/nova root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf verbose=true |
- Creamos las tablas en la base de datos
1 |
sudo nova-manage db sync |
- Reiniciamos los servicios
1 2 3 4 5 |
service nova-api restart service nova-cert restart service nova-consoleauth restart service nova-scheduler restart service nova-novncproxy restart |
- Instalamos los paquetes:
1 |
sudo apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms python-cinderclient linux-headers-`uname -r` |
- Modificamos el archivo /etc/tgt/targets.conf:
1 2 |
# include /etc/tgt/conf.d/*.conf include /etc/tgt/conf.d/cinder_tgt.conf |
- Vamos a utilizar iSCSI para asignar los volumenes a las máquinas virtuales, por lo que vamos a habilitarlo:
1 |
sed -i 's/false/true/g' /etc/default/iscsitarget |
- Arrancamos los servicios:
1 2 |
sudo service iscsitarget start sudo service open-iscsi start |
- Configuramos Cinder editando el archivo /etc/cinder/cinder.conf:
1 2 3 4 |
[DEFAULT] sql_connection = mysql://cinder:password@localhost:3306/cinder rabbit_password = password |
- Editamos el archivo /etc/cinder/api-paste.ini:
1 2 3 |
admin_tenant_name = service admin_user = cinder admin_password = password |
- Formateamos el segundo disco del sistema creando una partición de tipo Linux
1 |
fdisk /dev/sdb |
- Creamos la partición siguiendo ejecutando:
- n: para crear la partición
- p: partición primaria
- 1: número de partición
- tamaño completo del disco
- t: para cambiar el tipo de partición
- 83: para el código de partición Linux
- Creamos el volumen con la partición creada con LVM
1 2 |
pvcreate /dev/sdb1 vgcreate cinder-volumes /dev/sdb1 |
- Creamos las tablas en la base de datos
1 |
sudo cinder-manage db sync |
- Reiniciamos los servicios:
1 2 3 |
service cinder-api restart service cinder-scheduler restart service cinder-volume restart |
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
En este paso:
glance image-create –location http://uec-images.ubuntu.com/releases/12.04/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img –is-public true –disk-format qcow2 –container-format bare –name “Ubuntu-12.04”
me genera el siguiente mensaje:
‘NoneType’ object has no attribute ‘rfind’
y no me permite crear la imagen, hice varias cosas pero no hay forma de solucionar, alguna sugerencia??
me contesto solo:
hice
glance –debug image-create –location http://uec-images.ubuntu.com/releases/12.04/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img –is-public true –disk-format qcow2 –container-format bare –name “Ubuntu-12.04″
y ahi encontre que estaban mal creados los endpoints.
Gracias