diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..bac99c5 --- /dev/null +++ b/README.rst @@ -0,0 +1,45 @@ +================ +Keystone Formula +================ + +Install and configure the Openstack Keystone service + +.. note:: + See the full `Salt Formulas installation and usage instructions + `_. + +Available states +================ + +.. contents:: + :local: + +``keystone`` +------------ + +Install the keystone and enable the service. + +``keystone.db`` +--------------- + +Create the db for keystone service. + +``keystone.keystone`` +--------------------- + +Init the tenants, roles, service, endpoint and admin account. + +``keystone.server`` +------------------- + +Install the keystone and enable the service + +``keystone.openrc`` +------------------- + +Add the openrc file + +``keystone.client`` +------------------- + +Add the python-keystoneclient package. diff --git a/keystone/client.sls b/keystone/client.sls new file mode 100644 index 0000000..b55f438 --- /dev/null +++ b/keystone/client.sls @@ -0,0 +1,6 @@ +{%- from "keystone/map.jinja" import keystone with context %} + +keystone-client: + pkg.installed: + - refresh: False + - name: {{ keystone.client_pkg }} diff --git a/keystone/db.sls b/keystone/db.sls new file mode 100644 index 0000000..7ec3df0 --- /dev/null +++ b/keystone/db.sls @@ -0,0 +1,14 @@ +{%- set name="keystone" %} + +{{ name }}-db: + mysql_database.present: + - name: {{ name }} + mysql_user.present: + - name: {{ name }} + - host: "{{ salt["pillar.get"](name + ":mysql:host","%") }}" + - password: {{ salt["pillar.get"](name + ":mysql:password") }} + mysql_grants.present: + - host: "{{ salt["pillar.get"](name + ":mysql:host","%") }}" + - grant: all privileges + - database: "{{ name }}.*" + - user: {{ name }} diff --git a/keystone/files/keystone.conf b/keystone/files/keystone.conf new file mode 100644 index 0000000..96cc9eb --- /dev/null +++ b/keystone/files/keystone.conf @@ -0,0 +1,10 @@ +{% from "keystone/map.jinja" import keystone_config with context -%} +# This file is managed by salt +{% for section, section_values in keystone_config | dictsort(true) %} +[{{ section }}] + {%- for key, value in section_values|dictsort(true)%} +{{ key }} = {{ value }} + {%- endfor %} +{% endfor %} +{#- vim:ft=sls +-#} diff --git a/keystone/files/wait-port.sh b/keystone/files/wait-port.sh new file mode 100644 index 0000000..96c4c04 --- /dev/null +++ b/keystone/files/wait-port.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +TIMEOUT=$1 +HOST=$2 +PORT=$3 + +COUNT=0 + +while ! nc -w 1 $HOST $PORT