tripleo-ansible/tripleo_ansible/roles/tripleo_run_cephadm/tasks/prepare.yml

126 lines
4.6 KiB
YAML

---
# Copyright 2021 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: create cephadm workdir
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ playbook_dir }}/cephadm"
tags:
- run_cephadm
- name: symbolic link to tripleo inventory from ceph-ansible work directory
file:
src: "{{ inventory_file }}"
dest: "{{ playbook_dir }}/cephadm/inventory.yml"
state: link
force: true
tags:
- run_cephadm
- name: generate ceph-admin.yml extra vars for user creation
copy:
dest: "{{ playbook_dir }}/cephadm/ceph-admin.yml"
content: "{{ ceph_admin_extra_vars | to_nice_yaml }}"
- name: get the list of enabled services on the overcloud
set_fact:
tripleo_enabled_services: "{{ enabled_services | default([]) }}"
- name: set dashboard_vip variable if dashboard is enabled
block:
- name: get the frontend_dashboard_vip from the overcloud vars
command: "hiera -c /etc/puppet/hiera.yaml ceph_dashboard_vip"
register: frontend_vip
become: true
- name: set dashboard_frontend variable
set_fact:
grafana_vip: |-
{% set dashboard_vip = control_virtual_ip %}
{% if frontend_vip.stdout != "nil" %}
{% set dashboard_vip = frontend_vip.stdout %}
{% endif %}
{{ dashboard_vip }}
when:
- tripleo_enabled_services | intersect(['ceph_grafana'])
- include_role:
name: tripleo_ceph_work_dir
tasks_from: build_pools.yml
vars:
tripleo_pool_images: "{{ ceph_pools.glance_pool.enabled }}"
tripleo_pool_vms: "{{ ceph_pools.nova_pool.enabled }}"
tripleo_pool_volumes: "{{ ceph_pools.cinder_pool.enabled }}"
tripleo_pool_backup: "{{ ceph_pools.cinder_backup_pool.enabled }}"
tripleo_pool_metrics: "{{ ceph_pools.gnocchi_pool.enabled }}"
- include_role:
name: tripleo_ceph_work_dir
tasks_from: build_keys.yml
- include_role:
name: tripleo_ceph_work_dir
tasks_from: build_config_overrides.yml
- name: generate heat cephadm-extra-vars for running tripleo_cephadm role
copy:
dest: "{{ playbook_dir }}/cephadm/cephadm-extra-vars-heat.yml"
content: "{{ cephadm_extra_vars | combine(ceph_overrides|default({}))
| combine(ceph_monitoring_stack|default({}))
| combine(ceph_dashboard_vars|default({}))
| combine(cephadm_rgw_vars|default({}))
| combine(cephfs_metadata|default({}))
| combine(ceph_nfs_vars|default({}))
| combine(cephfs_data|default({}))
| to_nice_yaml }}"
- name: Set bootstrap host
set_fact:
tripleo_cephadm_bootstrap_host: "{{ groups['ceph_mon'][0] }}"
- name: Set first monitor IP
set_fact:
tripleo_cephadm_first_mon_ip: "{{ hostvars[tripleo_cephadm_bootstrap_host][tripleo_run_cephadm_net] |
default(ansible_host) }}"
vars:
tripleo_run_cephadm_net: "{{ service_net_map['ceph_mon_network']|default('') + '_ip' }}"
- name: genereate ceph_spec for bootstrap
ceph_spec_bootstrap:
new_ceph_spec: "{{ tripleo_run_cephadm_spec_path }}"
tripleo_ansible_inventory: "{{ inventory_file }}"
fqdn: "{{ ceph_spec_fqdn }}"
osd_spec: "{{ ceph_osd_spec }}"
when:
- tripleo_cephadm_dynamic_spec
- name: generate ansible cephadm-extra-vars for running tripleo_cephadm role
copy:
dest: "{{ playbook_dir }}/cephadm/cephadm-extra-vars-ansible.yml"
content: |
tripleo_cephadm_bootstrap_host: {{ tripleo_cephadm_bootstrap_host }}
tripleo_cephadm_first_mon_ip: {{ tripleo_cephadm_first_mon_ip }}
tripleo_cephadm_spec_on_bootstrap: false
tripleo_cephadm_pools: {{ openstack_pools.get('openstack_pools', []) }}
tripleo_cephadm_keys: {{ keys.get('keys',[]) }}
tripleo_cephadm_dashboard_frontend_vip: {{ grafana_vip|default() }}
service_net_map: {{ service_net_map|default({}) }}
tripleo_enabled_services: {{ enabled_services | default([]) }}
tripleo_cephadm_fqdn: "{{ ceph_spec_fqdn | bool }}"
tripleo_cephadm_spec_ansible_host: "{{ tripleo_run_cephadm_spec_path }}"
tripleo_cephadm_internal_tls_enabled: "{{ enable_internal_tls }}"