blob: 29490843a084b0ba39d935895df448c919a54b7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
---
- hosts: localhost
vars_files:
- "/etc/openstack/cinder.conf"
tasks:
# Configure iscsid, this can go in a separate script
- name: Update kernel module dependencies
command: depmod -a
- name: generate InitiatorName for iscsi
shell: iscsi-iname
register: initiator_name
- lineinfile:
dest: /etc/iscsi/initiatorname.iscsi
regexp: '^InitiatorName=$'
line: 'InitiatorName={{ initiator_name.stdout }}'
backrefs: yes
- name: Enable and start iscsid
service:
name: "{{ item }}"
enabled: yes
state: started
with_items:
- iscsid
# Configure LVM and target for Cinder
- name: Check that CINDER_DEVICE exists
stat:
path: "{{ CINDER_DEVICE }}"
register: cinder_device_stats
failed_when: cinder_device_stats.stat.exists == false
- name: Configure LVM group for cinder
lvg:
vg: cinder-volumes
pvs: "{{ CINDER_DEVICE }}"
- lineinfile:
dest: /etc/lvm/lvm.conf
regexp: '# filter = \[ \"a\/\.\*/\" \]'
line: ' filter = [ "a|{{ CINDER_DEVICE }}|", "r/.*/" ]'
backrefs: yes
- name: Enable and start lvm2-lvmetad and target services
service:
name: "{{ item }}"
enabled: yes
state: started
with_items:
- lvm2-lvmetad
- target
# Configure cinder
- name: Create the cinder user.
user:
name: cinder
comment: Openstack Cinder Daemons
shell: /sbin/nologin
home: /var/lib/cinder
- name: Create the /var folders for cinder
file:
path: "{{ item }}"
state: directory
owner: cinder
group: cinder
with_items:
- /var/run/cinder
- /var/lock/cinder
- /var/log/cinder
- /var/lib/cinder
- /var/lib/cinder/volumer
- name: Create /etc/cinder directory
file:
path: /etc/cinder
state: directory
- name: Add the configuration needed for cinder in /etc/cinder using templates
template:
src: /usr/share/openstack/cinder/{{ item }}
dest: /etc/cinder/{{ item }}
with_lines:
- cd /usr/share/openstack/cinder && find -type f
- name: Create cinder service user in service tenant
keystone_user:
user: "{{ CINDER_SERVICE_USER }}"
password: "{{ CINDER_SERVICE_PASSWORD }}"
tenant: service
token: "{{ KEYSTONE_TEMPORARY_ADMIN_TOKEN }}"
- name: Assign admin role to cinder service user in the service tenant
keystone_user:
role: admin
user: "{{ CINDER_SERVICE_USER }}"
tenant: service
token: "{{ KEYSTONE_TEMPORARY_ADMIN_TOKEN }}"
- name: Add cinder endpoint
keystone_service:
name: cinder
type: volume
description: Openstack Block Storage
publicurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v1/%(tenant_id)s'
internalurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v1/%(tenant_id)s'
adminurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v1/%(tenant_id)s'
region: regionOne
token: "{{ KEYSTONE_TEMPORARY_ADMIN_TOKEN }}"
- name: Add cinderv2 endpoint
keystone_service:
name: cinderv2
type: volumev2
description: Openstack Block Storage
publicurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v2/%(tenant_id)s'
internalurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v2/%(tenant_id)s'
adminurl: 'http://{{ CONTROLLER_HOST_ADDRESS }}:8776/v2/%(tenant_id)s'
region: regionOne
token: "{{ KEYSTONE_TEMPORARY_ADMIN_TOKEN }}"
- name: Create postgresql user for cinder
postgresql_user:
name: "{{ CINDER_DB_USER }}"
sudo: yes
sudo_user: cinder
- name: Create database for cinder services
postgresql_db:
name: cinder
owner: "{{ CINDER_DB_USER }}"
sudo: yes
sudo_user: cinder
- name: Initiate cinder database
cinder_manage:
action: dbsync
sudo: yes
sudo_user: cinder
- name: Enable and start openstack-cinder services
service:
name: "{{ item }}"
enabled: yes
state: started
with_items:
- openstack-cinder-api
- openstack-cinder-scheduler
- openstack-cinder-volume
- openstack-cinder-backup
|