From eae9864d854b2a9cb7fa66f893ff15d80a0dcfb9 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Wed, 23 Jul 2014 17:16:20 +0800 Subject: [PATCH] init --- README.rst | 0 cinder/conf.sls | 4 ++++ cinder/db.sls | 14 ++++++++++++++ cinder/files/cinder.conf | 37 +++++++++++++++++++++++++++++++++++++ cinder/init.sls | 3 +++ cinder/keystone.sls | 23 +++++++++++++++++++++++ cinder/map.jinja | 28 ++++++++++++++++++++++++++++ cinder/server.sls | 19 +++++++++++++++++++ cinder/volume.sls | 18 ++++++++++++++++++ pillar.example | 21 +++++++++++++++++++++ 10 files changed, 167 insertions(+) create mode 100644 README.rst create mode 100644 cinder/conf.sls create mode 100644 cinder/db.sls create mode 100644 cinder/files/cinder.conf create mode 100644 cinder/init.sls create mode 100644 cinder/keystone.sls create mode 100644 cinder/map.jinja create mode 100644 cinder/server.sls create mode 100644 cinder/volume.sls create mode 100644 pillar.example diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..e69de29 diff --git a/cinder/conf.sls b/cinder/conf.sls new file mode 100644 index 0000000..81336a7 --- /dev/null +++ b/cinder/conf.sls @@ -0,0 +1,4 @@ +/etc/cinder/cinder.conf: + file.managed: + - source: salt://cinder/files/cinder.conf + - template: jinja diff --git a/cinder/db.sls b/cinder/db.sls new file mode 100644 index 0000000..d3600ea --- /dev/null +++ b/cinder/db.sls @@ -0,0 +1,14 @@ +{% set name="cinder" %} + +{{ 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/cinder/files/cinder.conf b/cinder/files/cinder.conf new file mode 100644 index 0000000..5aff40c --- /dev/null +++ b/cinder/files/cinder.conf @@ -0,0 +1,37 @@ +# This file is managed by salt + +[DEFAULT] +rootwrap_config = /etc/cinder/rootwrap.conf +api_paste_confg = /etc/cinder/api-paste.ini +iscsi_helper = tgtadm +volume_name_template = volume-%s +volume_group = cinder-volumes +verbose = True +auth_strategy = keystone +state_path = /var/lib/cinder +lock_path = /var/lock/cinder +volumes_dir = /var/lib/cinder/volumes + +# RabbitMQ +rpc_backend = cinder.openstack.common.rpc.impl_kombu +rabbit_userid = {{ salt["pillar.get"]("cinder:rabbitmq:name") }} +rabbit_password = {{ salt["pillar.get"]("cinder:rabbitmq:password") }} +{%- if salt['pillar.get']('rabbitmq:ha') %} +rabbit_hosts = {{ salt["pillar.get"]("cinder:rabbitmq:ip") |join(":") }} +rabbit_ha_queues = true +{%- else %} +rabbit_host = {{ salt["pillar.get"]("cinder:rabbitmq:ip", "localhost") }} +{%- endif %} + +[database] +connection = mysql://cinder:{{ salt["pillar.get"]("cinder:mysql:password") }}@{{ salt["pillar.get"]("cinder:mysql:ip", "localhost") }}/cinder?charset=utf8 + +[keystone_authtoken] +auth_host = {{ salt["pillar.get"]("cinder:keystone:host", "localhost") }} +auth_port = 5000 +auth_protocol = http +admin_tenant_name = service +admin_user = cinder +admin_password = {{ salt["pillar.get"]("cinder:keystone:password") }} +{#- vim:ft=sls +-#} diff --git a/cinder/init.sls b/cinder/init.sls new file mode 100644 index 0000000..87eaa8d --- /dev/null +++ b/cinder/init.sls @@ -0,0 +1,3 @@ +include: + - .server + - .volume diff --git a/cinder/keystone.sls b/cinder/keystone.sls new file mode 100644 index 0000000..763bfe4 --- /dev/null +++ b/cinder/keystone.sls @@ -0,0 +1,23 @@ +keystone_cinder_user: + keystone.user_present: + - name: cinder + - password: {{ salt['pillar.get']('cinder:keystone:password') }} + - email: {{ salt['pillar.get']('cinder:keystone:email', 'cinder@nolocal.com')}} + - tenant: service + - enable: True + - roles: + - service: + - admin + +keystone_cinder_service: + keystone.service_present: + - name: cinder + - service_type: volume + - description: Openstack Volume Service + +keystone_cinder_endpoint: + keystone.endpoint_present: + - name: cinder + - publicurl: http://{{ salt["pillar.get"]("cinder:public_ip") }}:8776/v1/%(tenant_id)s + - internalurl: http://{{ salt["pillar.get"]("cinder:internal_ip") }}:8776/v1/%(tenant_id)s + - adminurl: http://{{ salt["pillar.get"]("cinder:admin_ip") }}:8776/v1/%(tenant_id)s diff --git a/cinder/map.jinja b/cinder/map.jinja new file mode 100644 index 0000000..f045e80 --- /dev/null +++ b/cinder/map.jinja @@ -0,0 +1,28 @@ +{% set cinder=salt["grains.filter_by"]({ + "Debian":{ + "name": "cinder", + "server_pkgs": ["cinder-api", "cinder-scheduler", "cinder-backup"], + "server_services": ["cinder-api", "cinder-scheduler", "cinder-backup"], + "client_pkg": "python-cinderclient", + "cinder_volume": "cinder-volume", + "cinder_volume_service": "cinder-volume", + }, + "RedHat":{ + "name": "cinder", + "server_pkgs": ["openstack-cinder"], + "server_services": ["openstack-cinder-api", "openstack-cinder-scheduler", "openstack-cinder-backup"], + "client_pkg": "python-cinderclient", + "cinder_volume": "openstack-cinder", + "cinder_volume_service": "openstack-cinder-volume", + }, + "default":{ + "name": "cinder", + "server_pkgs": ["cinder-api", "cinder-scheduler", "cinder-backup"], + "server_services": ["cinder-api", "cinder-scheduler", "cinder-backup"], + "client_pkg": "python-cinderclient", + "cinder_volume": "cinder-volume", + "cinder_volume_service": "cinder-volume", + } + }, merge=salt["pillar.get"]("cinder:lookup")) %} +{#- vim:ft=sls +-#} diff --git a/cinder/server.sls b/cinder/server.sls new file mode 100644 index 0000000..c203824 --- /dev/null +++ b/cinder/server.sls @@ -0,0 +1,19 @@ +{%- from "cinder/map.jinja" import cinder with context %} + +include: + - .db + - .keystone + - .conf + +{{ cinder.name }}: + pkg.installed: + - refresh: False + - pkgs: {{ cinder.server_pkgs }} + service.running: + - names: {{ cinder.server_services }} + - enable: True + - require: + - pkg: {{ cinder.name }} + - file: /etc/cinder/cinder.conf + - watch: + - file: /etc/cinder/cinder.conf diff --git a/cinder/volume.sls b/cinder/volume.sls new file mode 100644 index 0000000..83dd456 --- /dev/null +++ b/cinder/volume.sls @@ -0,0 +1,18 @@ +{%- from "cinder/map.jinja" import cinder with context %} + +include: + - .conf + +cinder-volume: + pkg.installed: + - refresh: False + - name: {{ cinder.cinder_volume }} + service.running: + - name: {{ cinder.cinder_volume_service }} + - enable: True + - restart: True + - require: + - pkg: cinder-volume + - file: /etc/cinder/cinder.conf + - watch: + - file: /etc/cinder/cinder.conf diff --git a/pillar.example b/pillar.example new file mode 100644 index 0000000..0ddbdd1 --- /dev/null +++ b/pillar.example @@ -0,0 +1,21 @@ +cinder: + public_ip: 10.0.0.12 + internal_ip: 10.0.0.12 + admin_ip: 10.0.0.12 + mysql: + ip: 10.0.0.12 + password: 'pass' + host: '%' + keystone: + password: 'pass' + email: zhang.lei.fly@gmail.com + host: 10.0.0.12 + rabbitmq: + name: openstack + password: pass + ip: 10.0.0.12 + conf: {} + + +{#- vim:ft=sls +-#}