Installing FIWARE Lab Node

Introduction

In order to install your FIWARE Lab Node you can choose among different options that allows you to deploy an updated version of Vanilla OpenStack compatible with the requirements listed in section Essential things.

How to install a FIWARE Lab Node

Currently, the OpenStack community offers many ways to install a complete environment and the procedure can be manual or automatic. Thanks to novel DevOps techniques the current trend is to leverage Infrastructure as Code concept and IT Automation tools like Ansible, Puppet or Chef in order to provision and maintain such complex systems.

Moreover Operating System Virtualization (Container-based) helps the management and the upgrade of all services running in the OpenStack based FIWARE Lab Node and it also grants the compatibility and portability of those services across different Operating Systems[^2].

For the above reasons FIWARE suggests the usage of IT Automation tools and Container-based virtualization in order to setup and maintain FIWARE Lab Nodes. Hereunder are references projects currently supporting the OpenStack installation:

  1. OpenStack-Ansible: OpenStack services are automatically installed by Ansible and run inside LXC containers.

    1. https://docs.openstack.org/project-deploy-guide/openstack-ansible/

    2. https://docs.openstack.org/openstack-ansible/latest/

    3. https://github.com/openstack/openstack-ansible

  2. Kolla & Kolla-Ansible: OpenStack services run inside pre-built Docker containers offered as Docker images from the Docker Hub and installed on nodes by Ansible.

    1. https://wiki.openstack.org/wiki/Kolla

    2. https://docs.openstack.org/kolla/latest/

    3. https://github.com/openstack/kolla-ansible

Of course, manual installation is still possible, although discouraged as it results in more difficult management primarily due to package dependencies:

  1. Manual Installation & Configuration:

    1. https://docs.openstack.org/install-guide/

    2. https://docs.openstack.org/install/

Suggested deployment architecture

To join FIWARE Lab no minimal requirement is enforced but the infrastructure must be adequate to support the needs of users who will be hosted on the new nodes. Obviously during the first node setup may not be clear how many users will be active and neither their needs in term of resources. For the above reasons it is strongly recommended, for a production environment, to follow the suggested deployment architecture:

  • 3 Controllers in HA (including also Neutron L3 HA solution) with the following services

    • The nova-scheduler service, that allocates VMs on the compute nodes.

    • The cinder-scheduler service, that allocates block storage on the compute nodes.

    • The glance-registry service, that manages the images and VM templates. The backend for the registry maybe the controller node, or the Object Storage.

    • The neutron-server service, that manages the VM networks.

    • The heat-api and engine

    • The swift-proxy service that manages request to the object storage nodes.

    • The nova-api service, that exposes the APIs to interact with the nova-scheduler.

    • The cinder-api service, that exposes the APIs to interact with the cinder-scheduler.

    • The glance-api service, that exposes the APIs to interact with the glance-registry.

    • The keystone service, that manages OpenStack services in a node.

  • (Optional) 3+ Object storage nodes with the following services:

    • The swift-account-server service, that handles listing of containers.

    • The swift-container-server service, that handles listing of stored objects.

    • The swift-object-server service, that provides actual object storage capability.

  • 6+ Compute nodes (including also Cinder LVM) with the following services

    • The nova-compute service, that manages VMs on the local node.

    • The cinder-volume service, that manages block storage on the local node.

    • The neutron-agent service, that manages VM networks on the local node.

  • 3 Ceilometer nodes