mirror of https://github.com/ceph/ceph-ansible.git
75 lines
2.6 KiB
YAML
75 lines
2.6 KiB
YAML
---
|
|
# NOTE (leseb):
|
|
# The playbook aims to takeover a cluster that was not configured with
|
|
# ceph-ansible.
|
|
#
|
|
# The procedure is as follows:
|
|
#
|
|
# 1. Install Ansible and add your monitors and osds hosts in it. For more detailed information you can read the [Ceph Ansible Wiki](https://github.com/ceph/ceph-ansible/wiki)
|
|
# 2. Set `generate_fsid: false` in `group_vars`
|
|
# 3. Get your current cluster fsid with `ceph fsid` and set `fsid` accordingly in `group_vars`
|
|
# 4. Run the playbook called: `take-over-existing-cluster.yml` like this `ansible-playbook take-over-existing-cluster.yml`.
|
|
# 5. Eventually run Ceph Ansible to validate everything by doing: `ansible-playbook site.yml`.
|
|
|
|
- name: Fetch keys
|
|
hosts: mons
|
|
become: true
|
|
tasks:
|
|
- name: Import ceph-defaults role
|
|
ansible.builtin.import_role:
|
|
name: ceph-defaults
|
|
|
|
- name: Import ceph-fetch-keys role
|
|
ansible.builtin.import_role:
|
|
name: ceph-fetch-keys
|
|
|
|
- name: Take over existing cluster
|
|
hosts:
|
|
- mons
|
|
- osds
|
|
- mdss
|
|
- rgws
|
|
- nfss
|
|
- rbdmirrors
|
|
- clients
|
|
- mgrs
|
|
- iscsi-gw
|
|
become: true
|
|
tasks:
|
|
- name: Import ceph-defaults role
|
|
ansible.builtin.import_role:
|
|
name: ceph-defaults
|
|
|
|
post_tasks:
|
|
- name: Get the name of the existing ceph cluster
|
|
ansible.builtin.shell: |
|
|
set -o pipefail;
|
|
basename $(grep --exclude '*.bak' -R fsid /etc/ceph/ | egrep -o '^[^.]*' | head -n 1)
|
|
changed_when: false
|
|
register: cluster_name
|
|
|
|
- name: Run stat module on Ceph configuration file
|
|
ansible.builtin.stat:
|
|
path: "/etc/ceph/{{ cluster_name.stdout }}.conf"
|
|
register: ceph_conf_stat
|
|
|
|
# Creates a backup of original ceph conf file in 'cluster_name-YYYYMMDDTHHMMSS.conf.bak' format
|
|
- name: Make a backup of original Ceph configuration file
|
|
ansible.builtin.copy:
|
|
src: "/etc/ceph/{{ cluster_name.stdout }}.conf"
|
|
dest: "/etc/ceph/{{ cluster_name.stdout }}-{{ ansible_date_time.iso8601_basic_short }}.conf.bak"
|
|
remote_src: true
|
|
owner: "{{ ceph_conf_stat.stat.pw_name }}"
|
|
group: "{{ ceph_conf_stat.stat.gr_name }}"
|
|
mode: "{{ ceph_conf_stat.stat.mode }}"
|
|
|
|
- name: Generate ceph configuration file
|
|
openstack.config_template.config_template:
|
|
src: "roles/ceph-config/templates/ceph.conf.j2"
|
|
dest: "/etc/ceph/{{ cluster_name.stdout }}.conf"
|
|
owner: "{{ ceph_conf_stat.stat.pw_name }}"
|
|
group: "{{ ceph_conf_stat.stat.gr_name }}"
|
|
mode: "{{ ceph_conf_stat.stat.mode }}"
|
|
config_overrides: "{{ ceph_conf_overrides }}"
|
|
config_type: ini
|