From caa183957a64b96b09e8fefb7b69504c0efe2172 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 22 Jul 2014 14:21:11 +0800 Subject: [PATCH] init project Change-Id: I3b6fdf75f17d7dafb146d7b6becd02fa70d8e455 --- README.rst | 45 ++++++++++++++++++++++++++++++ keystone/client.sls | 6 ++++ keystone/db.sls | 14 ++++++++++ keystone/files/keystone.conf | 10 +++++++ keystone/files/wait-port.sh | 21 ++++++++++++++ keystone/init.sls | 6 ++++ keystone/keystone.sls | 53 ++++++++++++++++++++++++++++++++++++ keystone/map.jinja | 49 +++++++++++++++++++++++++++++++++ keystone/openrc.sls | 11 ++++++++ keystone/server.sls | 28 +++++++++++++++++++ pillar.example | 26 ++++++++++++++++++ 11 files changed, 269 insertions(+) create mode 100644 README.rst create mode 100644 keystone/client.sls create mode 100644 keystone/db.sls create mode 100644 keystone/files/keystone.conf create mode 100644 keystone/files/wait-port.sh create mode 100644 keystone/init.sls create mode 100644 keystone/keystone.sls create mode 100644 keystone/map.jinja create mode 100644 keystone/openrc.sls create mode 100644 keystone/server.sls create mode 100644 pillar.example 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