Instalación “manual” de OpenStack – Servicio de Imagenes (perspectiva desarrollador)

Toca el turno ahora de configurar el servicio de imagenes desde la perspectiva de desarrollador. En este caso la documentación es algo escasa, ademas de que el proceso que se tiene resulta diferente respecto al resto de los servicios.

Antes que nada, primero es necesario modificar el archivo de Vagrantfile para utilizar un script diferente para el provisionamiento.

Vagrantfile

  config.vm.define :glance do |glance|
    glance.vm.hostname = 'glance-precise64'
    glance.vm.network :private_network, ip: '192.168.50.13'
    glance.vm.network :forwarded_port, guest: 9292, host: 9292
    #glance.vm.provision "shell", path: "glance.sh"
    glance.vm.provision "shell", path: "glance_dev.sh"
  end

Este nuevo script comenzara con la instalación de dependencias que require el código fuente de glance. La documentación oficial menciona que para Ubuntu puede utilizarse «sudo apt-get build-dep glance» para instalar las dependencias, en lo personal al utilizar ese comando he detectado la falta de algunas dependencias, por lo que he preferido especificar cada una de ellas.

glance_dev.sh

apt-get update
apt-get install --no-install-recommends -qqy git screen python-pip python-virtualenv python-dev libxml2-dev libxslt1-dev libsasl2-dev libsqlite3-dev libldap2-dev libffi-dev libmysqlclient-dev libpq-dev

Una vez que se tiene todo lo necesario, procedemos a descargar el código fuente, con este podremos generar un ambiente virtual desde el cual se agregaran mas dependencias solo que esta vez serán agregadas al ambiente virtual.

glance_dev.sh

git clone https://github.com/openstack/glance.git
cd glance

python tools/install_venv.py
. .venv/bin/activate
python setup.py develop

Una vez instalado las dependencias necesarias, es necesario modificar los archivos de configuración para especificar la ruta del archivo de bitácora, ademas de la ubicación de los archivos que contendrán almacenaran los datos.

glance_dev.sh

glance-manage --config-file etc/glance-registry.conf db_sync
glance-manage --config-file etc/glance-api.conf db_sync

Por ultimo, solo nos queda iniciar los servicios. El metodo recomendable para hacerlo es a traves de el comando «glance-control», desafortunadamente al especificar el archivo de configuración este comando genera aun error. Por el momento utilizaremos sesiones de screen para mantener en segundo plano la ejecución del servicio.

glance_dev.sh

screen -dmS "glance_api_service" tools/with_venv.sh glance-api --config-file etc/glance-api.conf --debug
screen -dmS "glance_registry_service" tools/with_venv.sh glance-registry --config-file etc/glance-registry.conf --debug