mirror of https://github.com/ceph/ceph-ansible.git
106 lines
2.5 KiB
YAML
106 lines
2.5 KiB
YAML
---
|
|
# This playbook is used to add a new OSD to
|
|
# an existing cluster without the need for running
|
|
# the ceph-docker-common or ceph-common and ceph-mon role again against all
|
|
# of the existing monitors.
|
|
#
|
|
# It can run from any machine. Even if the fetch directory is not present
|
|
# it will be created.
|
|
#
|
|
# Ensure that all monitors are present in the mons
|
|
# group in your inventory so that the ceph configuration file
|
|
# is created correctly for the new OSD(s).
|
|
#
|
|
# It is expected to edit your inventory file to only point to the OSD hosts
|
|
# you want to play the playbook on. So you need to comment already deployed OSD
|
|
# and let uncommented the new OSDs.
|
|
#
|
|
- hosts:
|
|
- mons
|
|
- osds
|
|
|
|
gather_facts: False
|
|
|
|
vars:
|
|
delegate_facts_host: True
|
|
|
|
tasks:
|
|
# pre-tasks for following import
|
|
- name: gather facts
|
|
setup:
|
|
when:
|
|
- not delegate_facts_host | bool
|
|
|
|
- name: gather and delegate facts
|
|
setup:
|
|
delegate_to: "{{ item }}"
|
|
delegate_facts: True
|
|
with_items:
|
|
- "{{ groups['mons'] }}"
|
|
- "{{ groups['osds'] }}"
|
|
run_once: True
|
|
when:
|
|
- delegate_facts_host | bool
|
|
|
|
- import_role:
|
|
name: ceph-defaults
|
|
private: false
|
|
|
|
- import_role:
|
|
name: ceph-validate
|
|
private: false
|
|
|
|
- hosts: osds
|
|
gather_facts: False
|
|
become: True
|
|
|
|
tasks:
|
|
# pre-tasks for following import
|
|
# this task is needed so we can skip the openstack_config.yml include in roles/ceph-osd
|
|
- name: set_fact add_osd
|
|
set_fact:
|
|
add_osd: True
|
|
|
|
- name: set noup flag
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd set noup"
|
|
delegate_to: "{{ groups['mons'][0] }}"
|
|
run_once: True
|
|
changed_when: False
|
|
|
|
- import_role:
|
|
name: ceph-defaults
|
|
private: false
|
|
|
|
- import_role:
|
|
name: ceph-handler
|
|
private: false
|
|
|
|
- import_role:
|
|
name: ceph-infra
|
|
private: false
|
|
|
|
- import_role:
|
|
name: ceph-docker-common
|
|
private: false
|
|
when: containerized_deployment | bool
|
|
|
|
- import_role:
|
|
name: ceph-common
|
|
private: false
|
|
when: not containerized_deployment | bool
|
|
|
|
- import_role:
|
|
name: ceph-config
|
|
private: false
|
|
|
|
- import_role:
|
|
name: ceph-osd
|
|
private: false
|
|
|
|
# post-tasks for preceding import
|
|
- name: unset noup flag
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd unset noup"
|
|
delegate_to: "{{ groups['mons'][0] }}"
|
|
run_once: True
|
|
changed_when: False
|