Needed because ceph-mgr seems to crash frequently under Debian 12 when adding or removing OSDs. The default settings do not restart it properly, so this override does.
165 lines
4.0 KiB
YAML
165 lines
4.0 KiB
YAML
---
|
|
- name: install packages
|
|
apt:
|
|
name:
|
|
- ceph-osd
|
|
- ceph-mds
|
|
- ceph-mon
|
|
- ceph-mgr
|
|
- radosgw
|
|
state: latest
|
|
register: apt_res
|
|
retries: 5
|
|
until: apt_res is success
|
|
|
|
- name: add admin users to ceph groups
|
|
user:
|
|
name: "{{ item.name }}"
|
|
groups: ceph
|
|
append: yes
|
|
with_items: "{{ admin_users }}"
|
|
|
|
- name: install sysctl tweaks
|
|
template:
|
|
src: ceph/sysctl.conf.j2
|
|
dest: /etc/sysctl.d/pvc-ceph.conf
|
|
|
|
- name: activate sysctl tweaks
|
|
command: sysctl -p /etc/sysctl.d/pvc-ceph.conf
|
|
|
|
- name: install user limits overrides
|
|
template:
|
|
src: ceph/limits.conf.j2
|
|
dest: /etc/security/limits.d/99-pvc-ceph.conf
|
|
|
|
- name: install ceph default config
|
|
template:
|
|
src: ceph/default.conf.j2
|
|
dest: /etc/default/ceph
|
|
|
|
- name: create ceph configuration directory
|
|
file:
|
|
dest: /etc/ceph
|
|
state: directory
|
|
|
|
- include: ceph/bootstrap.yml
|
|
when: do_bootstrap is defined and do_bootstrap
|
|
run_once: yes
|
|
|
|
- name: install configurations
|
|
copy:
|
|
src: ceph/{{ cluster_group }}/ceph/{{ item }}
|
|
dest: /etc/ceph/{{ item }}
|
|
owner: ceph
|
|
group: ceph
|
|
mode: 0640
|
|
notify:
|
|
- restart ceph-mon
|
|
- restart ceph-mgr
|
|
with_items:
|
|
- ceph.conf
|
|
- ceph.mon.keyring
|
|
- ceph.client.admin.keyring
|
|
- ceph.osd.bootstrap.keyring
|
|
- monmap
|
|
|
|
- name: create monitor and manager data directories
|
|
file:
|
|
dest: /var/lib/ceph/{{ item }}/ceph-{{ ansible_hostname }}
|
|
state: directory
|
|
owner: ceph
|
|
group: ceph
|
|
mode: 0750
|
|
with_items:
|
|
- mon
|
|
- mgr
|
|
when: newhost is defined and newhost
|
|
|
|
- name: populate monitor with map and keys
|
|
command: ceph-mon --cluster ceph --mkfs -i {{ ansible_hostname }} --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring
|
|
become_user: ceph
|
|
when: newhost is defined and newhost
|
|
|
|
- name: touch monitor and manager done files
|
|
file:
|
|
dest: /var/lib/ceph/{{ item }}/ceph-{{ ansible_hostname }}/done
|
|
state: touch
|
|
become_user: ceph
|
|
with_items:
|
|
- mon
|
|
- mgr
|
|
when: newhost is defined and newhost
|
|
|
|
- name: start monitor daemon
|
|
service:
|
|
name: "{{ item }}"
|
|
state: started
|
|
with_items:
|
|
- ceph-mon@{{ ansible_hostname }}
|
|
when: newhost is defined and newhost
|
|
|
|
- name: set msgr2 enabled
|
|
command: ceph mon enable-msgr2
|
|
run_once: yes
|
|
retries: 6
|
|
delay: 5
|
|
register: result
|
|
until: result.rc == 0
|
|
|
|
- name: set insecure_global_id_reclaim disabled
|
|
command: ceph config set mon auth_allow_insecure_global_id_reclaim false
|
|
run_once: yes
|
|
ignore_errors: yes
|
|
|
|
- name: set pg_autoscale_mode disabled
|
|
command: ceph config set global osd_pool_default_pg_autoscale_mode off
|
|
run_once: yes
|
|
ignore_errors: yes
|
|
|
|
- name: create mgr auth keyring
|
|
command: ceph auth get-or-create mgr.{{ ansible_hostname }} mon 'allow profile mgr' osd 'allow *' mds 'allow *' --out-file /var/lib/ceph/mgr/ceph-{{ ansible_hostname }}/keyring
|
|
become_user: ceph
|
|
args:
|
|
creates: /var/lib/ceph/mgr/ceph-{{ ansible_hostname }}/keyring
|
|
|
|
- name: install OSD bootstrap keyring
|
|
file:
|
|
dest: /var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
src: /etc/ceph/ceph.osd.bootstrap.keyring
|
|
state: link
|
|
|
|
- name: create mgr override systemd directory
|
|
file:
|
|
dest: /etc/systemd/system/ceph-mgr@.service.d
|
|
state: directory
|
|
|
|
- name: install mgr restart override systemd settings
|
|
template:
|
|
src: ceph/restart.conf.j2
|
|
dest: /etc/systemd/system/ceph-mgr@.service.d/restart.conf
|
|
register: systemd
|
|
|
|
- name: systemctl daemon-reload when files changed
|
|
command: systemctl daemon-reload
|
|
when: systemd.changed
|
|
|
|
- name: start but disable daemons
|
|
service:
|
|
name: "{{ item }}"
|
|
state: started
|
|
enabled: no
|
|
with_items:
|
|
- ceph-mon@{{ ansible_hostname }}
|
|
- ceph-mgr@{{ ansible_hostname }}
|
|
|
|
# Single-node cluster ruleset
|
|
- name: remove default CRUSH replicated_rule ruleset
|
|
command: ceph osd crush rule rm replicated_rule
|
|
when: "{{ pvc_nodes | length }} == 1"
|
|
|
|
- name: add single-node CRUSH replicated_rule ruleset
|
|
command: ceph osd crush rule create-replicated replicated_rule default osd
|
|
when: "{{ pvc_nodes | length }} == 1"
|
|
|
|
- meta: flush_handlers
|