242625dff4
If upgrading the nova, cinder or manila services via 'kolla-ansible upgrade', the Ceph config files are not generated. Users will expect that these files are generated, to pull in any changes from their configuration or the base kolla configuration. This change moves Ceph tasks inside config.yml to ensure that they are performed during deploy, reconfigure and upgrade. This has been done for nova, cinder, gnocchi and manila - glance already does this. Change-Id: Ic75692c2bcba9b81dee922ff6fbbccd160e7fa19 Closes-Bug: #1794275
110 lines
3.2 KiB
YAML
110 lines
3.2 KiB
YAML
---
|
|
- name: Ensuring config directory exists
|
|
file:
|
|
path: "{{ node_config_directory }}/{{ item }}"
|
|
state: "directory"
|
|
mode: "0770"
|
|
become: true
|
|
with_items:
|
|
- "nova-libvirt/secrets"
|
|
when: inventory_hostname in groups['compute']
|
|
|
|
- name: Copying over ceph.conf(s)
|
|
vars:
|
|
service_name: "{{ item }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/../ceph/templates/ceph.conf.j2"
|
|
- "{{ node_custom_config }}/ceph.conf"
|
|
- "{{ node_custom_config }}/ceph/{{ inventory_hostname }}/ceph.conf"
|
|
dest: "{{ node_config_directory }}/{{ item }}/ceph.conf"
|
|
mode: "0660"
|
|
become: true
|
|
with_items:
|
|
- "nova-compute"
|
|
- "nova-libvirt"
|
|
when: inventory_hostname in groups['compute']
|
|
|
|
- include_tasks: ../../ceph_pools.yml
|
|
vars:
|
|
pool_name: "{{ nova_pool_name }}"
|
|
pool_type: "{{ nova_pool_type }}"
|
|
cache_mode: "{{ nova_cache_mode }}"
|
|
pool_pg_num: "{{ nova_pool_pg_num }}"
|
|
pool_pgp_num: "{{ nova_pool_pgp_num }}"
|
|
pool_application: "rbd"
|
|
|
|
- name: Pulling cephx keyring for nova
|
|
kolla_ceph_keyring:
|
|
name: client.nova
|
|
caps: "{{ ceph_client_nova_keyring_caps }}"
|
|
register: nova_cephx_key
|
|
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
|
run_once: True
|
|
|
|
- name: Pulling cinder cephx keyring for libvirt
|
|
command: docker exec ceph_mon ceph auth get-key client.cinder
|
|
register: cinder_cephx_raw_key
|
|
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
|
when:
|
|
- enable_cinder | bool
|
|
- cinder_backend_ceph | bool
|
|
changed_when: False
|
|
run_once: True
|
|
|
|
- name: Pushing cephx keyring for nova
|
|
copy:
|
|
content: |
|
|
[client.nova]
|
|
key = {{ nova_cephx_key.keyring.key }}
|
|
dest: "{{ node_config_directory }}/nova-compute/ceph.client.nova.keyring"
|
|
mode: "0600"
|
|
become: true
|
|
when: inventory_hostname in groups['compute']
|
|
|
|
- name: Pushing secrets xml for libvirt
|
|
template:
|
|
src: "secret.xml.j2"
|
|
dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.xml"
|
|
mode: "0600"
|
|
become: true
|
|
when:
|
|
- inventory_hostname in groups['compute']
|
|
- item.enabled | bool
|
|
with_items:
|
|
- uuid: "{{ rbd_secret_uuid }}"
|
|
name: client.nova secret
|
|
enabled: true
|
|
- uuid: "{{ cinder_rbd_secret_uuid }}"
|
|
name: client.cinder secret
|
|
enabled: "{{ enable_cinder | bool and cinder_backend_ceph | bool}}"
|
|
|
|
- name: Pushing secrets key for libvirt
|
|
copy:
|
|
content: "{{ item.content }}"
|
|
dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.base64"
|
|
mode: "0600"
|
|
become: true
|
|
when:
|
|
- inventory_hostname in groups['compute']
|
|
- item.enabled | bool
|
|
with_items:
|
|
- uuid: "{{ rbd_secret_uuid }}"
|
|
content: "{{ nova_cephx_key.keyring.key }}"
|
|
enabled: true
|
|
- uuid: "{{ cinder_rbd_secret_uuid }}"
|
|
content: "{{ cinder_cephx_raw_key.stdout|default('') }}"
|
|
enabled: "{{ enable_cinder | bool and cinder_backend_ceph | bool}}"
|
|
|
|
- name: Ensuring config directory has correct owner and permission
|
|
become: true
|
|
file:
|
|
path: "{{ node_config_directory }}/{{ item }}"
|
|
recurse: yes
|
|
owner: "{{ config_owner_user }}"
|
|
group: "{{ config_owner_group }}"
|
|
with_items:
|
|
- "nova-compute"
|
|
- "nova-libvirt/secrets"
|
|
when: inventory_hostname in groups['compute']
|