30567679a2
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 |
||
---|---|---|
meta | ||
roles | ||
.gitignore | ||
ansible.cfg | ||
cassandra.yml | ||
cinder-controller.yml | ||
cinder-storage.yml | ||
common.yml | ||
dockerregistry.yml | ||
gcc-post-install.yml | ||
gcc-site.yml | ||
generate_secrets.py | ||
glance-controller.yml | ||
heat.yml | ||
horizon.yml | ||
hosts | ||
keystone.yml | ||
mariadb.yml | ||
memcached.yml | ||
neutron-controller.yml | ||
nova-compute.yml | ||
nova-controller.yml | ||
openstack03 | ||
os-test | ||
post-install.yml | ||
rabbitmq.yml | ||
README.md | ||
secrets.yml | ||
secrets.yml.topol | ||
settings.yml | ||
site.yml | ||
test_hosts |
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