This commit is contained in:
Lei Zhang 2014-07-23 17:16:20 +08:00
commit eae9864d85
10 changed files with 167 additions and 0 deletions

0
README.rst Normal file
View File

4
cinder/conf.sls Normal file
View File

@ -0,0 +1,4 @@
/etc/cinder/cinder.conf:
file.managed:
- source: salt://cinder/files/cinder.conf
- template: jinja

14
cinder/db.sls Normal file
View File

@ -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 }}

37
cinder/files/cinder.conf Normal file
View File

@ -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
-#}

3
cinder/init.sls Normal file
View File

@ -0,0 +1,3 @@
include:
- .server
- .volume

23
cinder/keystone.sls Normal file
View File

@ -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

28
cinder/map.jinja Normal file
View File

@ -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
-#}

19
cinder/server.sls Normal file
View File

@ -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

18
cinder/volume.sls Normal file
View File

@ -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

21
pillar.example Normal file
View File

@ -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
-#}