2019-06-12 21:06:06 -04:00
---
- name : generate cluster FSID
command : uuidgen
register : fsid_raw
delegate_to : localhost
2019-12-14 13:51:43 -05:00
become : no
2019-06-12 21:06:06 -04:00
- set_fact :
fsid : "{{ fsid_raw.stdout }}"
2019-06-16 03:59:51 -04:00
- name : create bootstrap ceph.conf
file :
dest : /etc/ceph/ceph.conf
state : touch
2019-06-12 21:06:06 -04:00
- name : initialize bootstrap ceph.conf
lineinfile :
dest : /etc/ceph/ceph.conf
2019-06-13 16:25:33 -04:00
line : "{{ item }}"
2019-06-12 21:06:06 -04:00
state : present
2019-06-13 16:25:33 -04:00
with_items :
- "[global]"
- "fsid = {{ fsid }}"
2020-04-06 13:11:42 -04:00
- "mon initial members = {% for node in pvc_nodes if node.is_coordinator %}{{ node.hostname.split('.')[0] }}{% if not loop.last %},{% endif %}{% endfor %}"
2019-12-14 13:14:21 -05:00
- "mon host = {% for host in pvc_nodes if host.is_coordinator %}{{ host.storage_ip }}{% if not loop.last %},{% endif %}{% endfor %}"
2019-06-12 21:06:06 -04:00
- name : create temporary directory
file :
dest : /tmp/ceph-bootstrap
state : directory
- name : create mon keyring
command : ceph-authtool --create-keyring /tmp/ceph-bootstrap/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
- name : create client admin keyring
2019-12-14 14:10:35 -05:00
command : ceph-authtool --create-keyring /tmp/ceph-bootstrap/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
2019-06-12 21:06:06 -04:00
- name : add client admin keyring to mon keyring
command : ceph-authtool /tmp/ceph-bootstrap/ceph.mon.keyring --import-keyring /tmp/ceph-bootstrap/ceph.client.admin.keyring
- name : create OSD bootstrap keyring
command : ceph-authtool --create-keyring /tmp/ceph-bootstrap/ceph.osd.bootstrap.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd'
- name : add OSD bootstrap keyring to mon keyring
command : ceph-authtool /tmp/ceph-bootstrap/ceph.mon.keyring --import-keyring /tmp/ceph-bootstrap/ceph.osd.bootstrap.keyring
- name : create monmap
2020-04-06 13:11:42 -04:00
command : monmaptool --create --fsid {{ fsid }} {% for node in pvc_nodes if node.is_coordinator %}--add {{ node.hostname.split('.')[0] }} {{ node.storage_ip }} {% endfor %} /tmp/ceph-bootstrap/monmap
2019-06-12 21:06:06 -04:00
- name : copy initial ceph.conf to the boostrap directory
copy :
src : /etc/ceph/ceph.conf
dest : /tmp/ceph-bootstrap/ceph.conf
remote_src : yes
- name : add additional configuration lines to ceph.conf
lineinfile :
dest : /tmp/ceph-bootstrap/ceph.conf
line : "{{ item }}"
state : present
with_items :
2019-12-24 14:27:31 -05:00
- "public network = {{ pvc_storage_subnet }}/{{ pvc_storage_netmask }}"
- "cluster network = {{ pvc_storage_subnet }}/{{ pvc_storage_netmask }}"
2019-06-12 21:06:06 -04:00
- "auth cluster required = cephx"
- "auth service required = cephx"
- "auth client required = cephx"
2019-06-18 21:34:29 -04:00
- "mon allow pool delete = 1"
2019-06-12 21:06:06 -04:00
- "osd journal size = 2"
- "osd pool default size = 3"
- "osd pool default min size = 2"
2020-12-20 19:06:52 -05:00
- "osd pool default pg num = 256"
- "osd pool default pgp num = 256"
2019-06-12 21:06:06 -04:00
- "osd crush chooseleaf type = 1"
2020-12-20 19:06:52 -05:00
- "bluestore cache autotune = true"
2021-07-30 11:39:24 -04:00
- "rbd default features = 5"
2020-12-20 19:06:52 -05:00
- name : add memory limit if requested
lineinfile :
dest : /tmp/ceph-bootstrap/ceph.conf
line : "{{ item }}"
state : present
with_items :
- "osd memory target = {{ pvc_osd_memory_limit }}"
when : pvc_osd_memory_limit is defined
2019-06-12 21:06:06 -04:00
- name : collect bootstrapped Ceph files into the role
fetch :
src : /tmp/ceph-bootstrap/{{ item }}
2021-06-29 17:52:21 -04:00
dest : files/{{ cluster_group }}/ceph/
2019-06-12 21:06:06 -04:00
flat : yes
with_items :
- ceph.conf
- ceph.mon.keyring
- ceph.client.admin.keyring
- ceph.osd.bootstrap.keyring
- monmap
- name : remove the temporary bootstrap directory
file :
dest : /tmp/ceph-bootstrap
state : absent
force : yes