Go to file
Egon Rijpkema 30567679a2 Fixes made while testing the playbooks.
Updated url of docker registry.

make a loop for more flexibility.

Introducing listen_ip variable that overrides

the default listen_ip.

make a loop for more flexibility.

Get a listen ip specifically for that host.

see if components have listen_ip defined before using ansible_default_ipv4

Make service files look for listen_ip variable.

implemented listen_ip variable here too

map to different port to avoid clashes.

Make PHYSICAL_INTERFACE_MAPPINGS variable...

instead of just one provuider interface.
it should contain something like:
physnet2:eth1,physnet3:eth2

add openstack client on machine that is running keystone

Added delay to check.

enable all services are started at boot

Inventory for gcc openstack03 all in one.

added volume for glance images

Added gcc all in one specific config.

Prevent an error when there is no secrets.yml..

to back up

removed reference to empty dir.

added empty meta/main.yml

And now with a list of roles

..and removed the list

removed reference to empty dir.

Added galera cluster support

When at least three database nodes are installed, the playbook will
install a galera cluster across them.

The galera cnf can be the same template across...

nodes.

made environment file for the service.

I am unable to reproduce systemctl set-environment to work as
advertized.

Reverted to updating init file by ansible.

entrypoint.sh of the mariadb container seems unable to cope when a blank
variable is passed by systemd.

give the galera master node some time

It seems to be nessecary to run in host mode..

for galera to work.

I misunderstood pause. need sleep.

Inventory for physical test cluster.

Added CINDER_PASSWORD

Make sure docker is started.

If docker was already installed but not running
it was not started.

fixed refernce to neutron controller

Added heat

Added port for metadata service

Passed metadata secret to be used in config.

Listen ip should be the machine's ip...

Added openstack client from repo.

changed name of subnet

added horizon

Changed rabbitmq default user to openstack.

This makes it no longer nesseccary to create a separate openstack user,
which is lost on rabbitmq restart.

Added sleep because hosts were usually..

not discovered.

Removed unnessecary port mapping

Making /dev/lvm available to container.

fixed os-test inventory

Make iscsi devices available

(needed to attach cinder volumes to machines)

command module no longer works with &&

add cinder to test setup
2018-01-19 09:17:50 +01:00
meta Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
roles Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
.gitignore Added a dockerregistry docker. 2017-05-09 09:17:04 +02:00
README.md Small expansion of readme 2017-08-29 14:06:34 +02:00
ansible.cfg Rearanged the playbook to use ansible roles: 2017-04-25 14:47:04 +02:00
cassandra.yml Removed inclusion of docker everywhere 2017-07-10 09:52:12 +02:00
cinder-controller.yml Added cinder block storage. 2017-08-28 11:50:57 +02:00
cinder-storage.yml Added cinder block storage. 2017-08-28 11:50:57 +02:00
common.yml Made separate files for different services. 2017-05-30 16:37:57 +02:00
dockerregistry.yml Made separate files for different services. 2017-05-30 16:37:57 +02:00
gcc-post-install.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
gcc-site.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
generate_secrets.py Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
glance-controller.yml Made settings in glance and nova flexible. 2017-07-12 16:32:58 +02:00
heat.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
horizon.yml Added nova compute 2017-07-14 10:02:55 +02:00
hosts Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
keystone.yml Added dummy task to gather facts. 2017-07-10 14:50:09 +02:00
mariadb.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
memcached.yml Added memcached role 2017-06-21 13:38:55 +02:00
neutron-controller.yml added neutron-controller 2017-07-26 09:59:59 +02:00
nova-compute.yml Added nova compute 2017-07-14 10:02:55 +02:00
nova-controller.yml Made settings in glance and nova flexible. 2017-07-12 16:32:58 +02:00
openstack03 Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
os-test Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
post-install.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
rabbitmq.yml Made rabbitmq use host variables. 2017-07-07 16:14:38 +02:00
secrets.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
secrets.yml.topol Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
settings.yml added post install settings 2017-08-28 11:50:27 +02:00
site.yml Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00
test_hosts Fixes made while testing the playbooks. 2018-01-19 09:17:50 +01:00

README.md

hpc-cloud

This repository contains playbooks to bring up openstack components inside docker containers. It makes use of ansible roles for the openstack components and the supporting infrastructure. The following roles are installed.

Openstack components.

  • keystone
  • glance-controller
  • horizon
  • neutron-controller
  • nova-controller
  • nova-compute
  • cinder-controller
  • cinder-storage

Auxilary components:

  • database (mariadb)
  • rabbitmq (cluster of three nodes)
  • memcached

Getting started:

Prerequisites:

  • A cluster of servers to install the components on.
    • The machines running nova-compute and neutron-controller need a separate interface for neutron to use.
  • ubuntu 16.04 with python installed (usually already present).
  • Access to the webhost12.service.rug.nl docker repository.

Settings:

Passwords need be added to secrets.yml.topol and it needs to be saved as secrets.yml. This can be done by running ./generate_secrets.py. Optionally, one can encrypt the secrtets by running ansible-vault encrypt secrets.yml.

Secrets:

The roles can be set in the inventory file (hosts)

To bring up one role, for instance keystone, use:

$ ansible-playbook keystone.yml

To bring up all roles, use

$ ansible-playbook site.yml