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