Compare commits
3 Commits
29c0634bc1
...
feature/ci
Author | SHA1 | Date | |
---|---|---|---|
95ef38a3ba | |||
a3ee754ddb | |||
1cefcaac0d |
38
README.md
38
README.md
@ -1,8 +1,42 @@
|
|||||||
# hpc-cloud
|
# hpc-cloud
|
||||||
|
|
||||||
This repository will contain playbooks to bring up openstack components inside docker containers.
|
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:
|
||||||
|
|
||||||
It makes use of ansible roles.
|
|
||||||
The roles can be set in the inventory file (hosts)
|
The roles can be set in the inventory file (hosts)
|
||||||
|
|
||||||
To bring up one role, for instance keystone, use:
|
To bring up one role, for instance keystone, use:
|
||||||
|
@ -18,7 +18,7 @@ except ImportError:
|
|||||||
# length of generated passwords.
|
# length of generated passwords.
|
||||||
pass_length = 20
|
pass_length = 20
|
||||||
|
|
||||||
with open('secrets.yml', 'r') as f:
|
with open('secrets.yml.topol', 'r') as f:
|
||||||
data = load(f, Loader=Loader)
|
data = load(f, Loader=Loader)
|
||||||
|
|
||||||
for key, value in data.iteritems():
|
for key, value in data.iteritems():
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
-e "CINDER_PASSWORD={{ secrets['CINDER_PASSWORD'] }}"
|
-e "CINDER_PASSWORD={{ secrets['CINDER_PASSWORD'] }}"
|
||||||
-e "CINDER_USER=cinder"
|
-e "CINDER_USER=cinder"
|
||||||
-e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}"
|
-e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}"
|
||||||
|
-e "MEMCACHED_HOST={{ hostvars[groups['memcached'][0]]['ansible_default_ipv4']['address'] }}"
|
||||||
-e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}"
|
-e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}"
|
||||||
-e "MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }}"
|
-e "MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }}"
|
||||||
-e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}"
|
-e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}"
|
||||||
|
11
secrets.yml.topol
Normal file
11
secrets.yml.topol
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
GLANCE_PASSWORD:
|
||||||
|
METADATA_SECRET:
|
||||||
|
MYSQL_ROOT_PASSWORD:
|
||||||
|
NEUTRON_PASSWORD:
|
||||||
|
NOVA_PASSWORD:
|
||||||
|
NOVA_PLACEMENT_PASSWORD:
|
||||||
|
OS_PASSWORD: # Keystone admin password
|
||||||
|
OS_DEMO_PASSWORD: # Keystone demo user password
|
||||||
|
RABBIT_PASSWORD:
|
||||||
|
RABBITMQ_ERLANG_COOKIE:
|
Reference in New Issue
Block a user