offline-deployment: Provision local services

This change implements functionality to provision local services to
use during offline deployments.

A new role, provision-local-services, is created to do this. The jumphost
server is named as local.nordix.org. Please note that only bifrost
and kubespray are supported. Work to introduce support for heat based
deployments is pending.

Provisioned services are
- operating system package repository: packages are placed under
nginx web root so package manager can update the system and install
any necessary packages. Please note that this requires modifications
in sources.list file but we back them up before we modify the existing
one.
- local docker registry: docker registry is installed in order to
serve all the container images required for deploying kubernetes
and applications. The service uses self-signed certificate so kubespray
does not complain.
- ntp server: chrony based ntp server is installed to handle time sync
within cluster. Please note that only the server pieces are implemented
and target hosts still need configuring to use the server for synching
time.

An important thing to note here is that provisioning of the local
services are done after provisioning of target nodes using bifrost.
The reason for this is that bifrost also uses nginx to provide
images to nodes so we simply wait for bifrost to do its work and then
we simply (re)install and configure nginx based on our needs.

Change-Id: Id8b5727258e11641406889b62742e550243dc77c
1 file changed