--- /dev/null
+---
+- name: set_fact ceph_config_keys
+ set_fact:
+ ceph_config_keys:
+ - /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring
+
+- name: stat for ceph config and keys
+ local_action: stat path={{ fetch_directory }}/{{ fsid }}/{{ item }}
+ with_items: "{{ ceph_config_keys }}"
+ changed_when: false
+ become: false
+ failed_when: false
+ always_run: true
+ register: statconfig
+
+- name: try to fetch ceph config and keys
+ copy:
+ src: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
+ dest: "{{ item.0 }}"
+ owner: root
+ group: root
+ mode: 0644
+ changed_when: false
+ with_together:
+ - "{{ ceph_config_keys }}"
+ - "{{ statconfig.results }}"
+ when: item.1.stat.exists == true
+
+- name: set selinux permissions
+ shell: |
+ chcon -Rt svirt_sandbox_file_t {{ item }}
+ with_items:
+ - "{{ ceph_conf_key_directory }}"
+ - /var/lib/ceph
+ changed_when: false
+ when: sestatus.stdout != 'Disabled'
+
+- name: generate systemd unit file
+ become: true
+ template:
+ src: "{{ role_path }}/templates/ceph-mds.service.j2"
+ dest: /etc/systemd/system/ceph-mds@.service
+ owner: "root"
+ group: "root"
+ mode: "0644"
+
+- name: systemd start mds container
+ systemd:
+ name: ceph-mds@{{ ansible_hostname }}
+ state: started
+ enabled: yes
+ daemon_reload: yes
+ changed_when: false
+
+- name: wait for mds socket to exist
+ command: "{{ docker_exec_cmd }} stat /var/run/ceph/{{ cluster }}-mds.{{ ansible_hostname }}.asok"
+ register: multi_mds_socket
+ retries: 5
+ delay: 15
+ until: multi_mds_socket.rc == 0
+
+- name: enable multimds if requested when mon is containerized
+ command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
+ changed_when: false
+ when:
+ - mds_allow_multimds
+
+- name: set max_mds when mon is containerized
+ command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
+ changed_when: false
+ when:
+ - mds_allow_multimds
+ - mds_max_mds > 1
+++ /dev/null
----
-- name: set_fact ceph_config_keys
- set_fact:
- ceph_config_keys:
- - /etc/ceph/{{ cluster }}.client.admin.keyring
- - /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring
-
-- name: stat for ceph config and keys
- local_action: stat path={{ fetch_directory }}/{{ fsid }}/{{ item }}
- with_items: "{{ ceph_config_keys }}"
- changed_when: false
- become: false
- failed_when: false
- always_run: true
- register: statconfig
-
-- name: try to fetch ceph config and keys
- copy:
- src: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
- dest: "{{ item.0 }}"
- owner: root
- group: root
- mode: 0644
- changed_when: false
- with_together:
- - "{{ ceph_config_keys }}"
- - "{{ statconfig.results }}"
- when: item.1.stat.exists == true
-
-- name: set selinux permissions
- shell: |
- chcon -Rt svirt_sandbox_file_t {{ item }}
- with_items:
- - "{{ ceph_conf_key_directory }}"
- - /var/lib/ceph
- changed_when: false
- when:
- - ansible_os_family == 'RedHat'
- - sestatus.stdout != 'Disabled'
+++ /dev/null
----
-- name: wait for mds socket to exist
- command: "{{ docker_exec_cmd }} stat /var/run/ceph/{{ cluster }}-mds.{{ ansible_hostname }}.asok"
- register: multi_mds_socket
- retries: 5
- delay: 15
- until: multi_mds_socket.rc == 0
-
-- name: enable multimds if requested when mon is containerized
- command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
- changed_when: false
- when:
- - containerized_deployment
- - mds_allow_multimds
-
-- name: set max_mds when mon is containerized
- command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
- changed_when: false
- when:
- - containerized_deployment
- - mds_allow_multimds
- - mds_max_mds > 1
+++ /dev/null
----
-- name: set_fact docker_exec_cmd
- set_fact:
- docker_exec_cmd: "docker exec ceph-mds-{{ ansible_hostname }}"
-
-- name: include copy_configs.yml
- include: copy_configs.yml
-
-- name: include start_docker_mds.yml
- include: start_docker_mds.yml
-
-- name: include enable_multimds.yml
- include: enable_multimds.yml
+++ /dev/null
----
-- name: generate systemd unit file
- become: true
- template:
- src: "{{ role_path }}/templates/ceph-mds.service.j2"
- dest: /etc/systemd/system/ceph-mds@.service
- owner: "root"
- group: "root"
- mode: "0644"
-
-- name: systemd start mds container
- systemd:
- name: ceph-mds@{{ ansible_hostname }}
- state: started
- enabled: yes
- daemon_reload: yes
- changed_when: false
---
-- name: include pre_requisite.yml
- include: pre_requisite.yml
+- name: non_containerized.yml
+ include: non_containerized.yml
when: not containerized_deployment
-- name: docker/main.yml
- include: docker/main.yml
+- name: containerized.yml
+ include: containerized.yml
when: containerized_deployment
--- /dev/null
+---
+- name: create bootstrap-mds directory
+ file:
+ path: /var/lib/ceph/bootstrap-mds/
+ state: directory
+ owner: "ceph"
+ group: "ceph"
+ mode: "0755"
+
+- name: copy mds bootstrap key
+ copy:
+ src: "{{ fetch_directory }}/{{ fsid }}{{ item.name }}"
+ dest: "{{ item.name }}"
+ owner: "ceph"
+ group: "ceph"
+ mode: "0600"
+ with_items:
+ - { name: "/var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring", copy_key: true }
+ - { name: "/etc/ceph/{{ cluster }}.client.admin.keyring", copy_key: "{{ copy_admin_key }}" }
+ when:
+ - cephx
+ - item.copy_key|bool
+
+- name: create mds directory
+ file:
+ path: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}
+ state: directory
+ owner: "ceph"
+ group: "ceph"
+ mode: "0755"
+
+- name: create mds keyring
+ command: ceph --cluster {{ cluster }} --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring auth get-or-create mds.{{ mds_name }} osd 'allow rwx' mds 'allow' mon 'allow profile mds' -o /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
+ args:
+ creates: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
+ changed_when: false
+ when: cephx
+
+- name: set mds key permissions
+ file:
+ path: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
+ owner: "ceph"
+ group: "ceph"
+ mode: "0600"
+ when: cephx
+
+- name: ensure systemd service override directory exists
+ file:
+ state: directory
+ path: "/etc/systemd/system/ceph-mds@.service.d/"
+ when:
+ - ceph_mds_systemd_overrides is defined
+ - ansible_server_mgr == 'systemd'
+
+- name: add ceph-mds systemd service overrides
+ config_template:
+ src: "ceph-mds.service.d-overrides.j2"
+ dest: "/etc/systemd/system/ceph-mds@.service.d/ceph-mds-systemd-overrides.conf"
+ config_overrides: "{{ ceph_mds_systemd_overrides | default({}) }}"
+ config_type: "ini"
+ when:
+ - ceph_mds_systemd_overrides is defined
+ - ansible_service_mgr == 'systemd'
+
+- name: start and add that the metadata service to the init sequence
+ service:
+ name: ceph-mds@{{ mds_name }}
+ state: started
+ enabled: yes
+ changed_when: false
+++ /dev/null
----
-- name: create bootstrap-mds directory
- file:
- path: /var/lib/ceph/bootstrap-mds/
- state: directory
- owner: "ceph"
- group: "ceph"
- mode: "0755"
-
-- name: copy mds bootstrap key
- copy:
- src: "{{ fetch_directory }}/{{ fsid }}{{ item.name }}"
- dest: "{{ item.name }}"
- owner: "ceph"
- group: "ceph"
- mode: "0600"
- with_items:
- - { name: "/var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring", copy_key: true }
- - { name: "/etc/ceph/{{ cluster }}.client.admin.keyring", copy_key: "{{ copy_admin_key }}" }
- when:
- - cephx
- - item.copy_key|bool
-
-- name: create mds directory
- file:
- path: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}
- state: directory
- owner: "ceph"
- group: "ceph"
- mode: "0755"
-
-- name: create mds keyring
- command: ceph --cluster {{ cluster }} --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring auth get-or-create mds.{{ mds_name }} osd 'allow rwx' mds 'allow' mon 'allow profile mds' -o /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
- args:
- creates: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
- changed_when: false
- when: cephx
-
-- name: set mds key permissions
- file:
- path: /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring
- owner: "ceph"
- group: "ceph"
- mode: "0600"
- when: cephx
-
-- name: ensure systemd service override directory exists
- file:
- state: directory
- path: "/etc/systemd/system/ceph-mds@.service.d/"
- when:
- - ceph_mds_systemd_overrides is defined
- - ansible_server_mgr == 'systemd'
-
-- name: add ceph-mds systemd service overrides
- config_template:
- src: "ceph-mds.service.d-overrides.j2"
- dest: "/etc/systemd/system/ceph-mds@.service.d/ceph-mds-systemd-overrides.conf"
- config_overrides: "{{ ceph_mds_systemd_overrides | default({}) }}"
- config_type: "ini"
- when:
- - ceph_mds_systemd_overrides is defined
- - ansible_service_mgr == 'systemd'
-
-- name: start and add that the metadata service to the init sequence
- service:
- name: ceph-mds@{{ mds_name }}
- state: started
- enabled: yes
- changed_when: false
{% endif -%}
-v /etc/localtime:/etc/localtime:ro \
-e CLUSTER={{ cluster }} \
- -e CEPHFS_CREATE=1 \
-e CEPH_DAEMON=MDS \
{{ ceph_mds_docker_extra_env }} \
--name=ceph-mds-{{ ansible_hostname }} \
# the role 'ceph-common' doesn't get inherited so the condition can not be evaluate
# since those check are performed by the ceph-common role
- name: create filesystem pools
- command: ceph --cluster {{ cluster }} osd pool create {{ item }} {{ osd_pool_default_pg_num }}
+ command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} osd pool create {{ item }} {{ osd_pool_default_pg_num }}"
with_items:
- cephfs_data
- cephfs_metadata
changed_when: false
- name: check if ceph filesystem already exists
- command: ceph --cluster {{ cluster }} fs get {{ cephfs }}
+ command: "{{docker_exec_cmd }} ceph --cluster {{ cluster }} fs get {{ cephfs }}"
register: check_existing_cephfs
changed_when: false
failed_when: false
- name: create ceph filesystem
- command: ceph --cluster {{ cluster }} fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}
+ command: "{{ docker_exec_cmd}} ceph --cluster {{ cluster }} fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}"
changed_when: false
when: check_existing_cephfs.rc != 0
- name: allow multimds
- command: ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it
+ command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
changed_when: false
when:
- ceph_release_num.{{ ceph_release }} >= ceph_release_num.jewel
- mds_allow_multimds
- name: set max_mds
- command: ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}
+ command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
changed_when: false
when:
- ceph_release_num.{{ ceph_release }} >= ceph_release_num.jewel
# this avoids the bug mentioned here: https://github.com/ansible/ansible/issues/18206
static: no
-- name: include create_mds_filesystems.yml
- include: create_mds_filesystems.yml
- when:
- - not containerized_deployment
- - groups[mds_group_name] is defined
- - "{{ groups[mds_group_name]|length > 0 }}"
- - "{{ inventory_hostname == groups[mon_group_name] | last }}"
-
- name: include secure_cluster.yml
include: secure_cluster.yml
when:
include: docker/main.yml
when: containerized_deployment
+- name: include create_mds_filesystems.yml
+ include: create_mds_filesystems.yml
+ when:
+ - groups[mds_group_name] is defined
+ - groups[mds_group_name]|length > 0
+ - inventory_hostname == groups[mon_group_name] | last
+
- name: include calamari.yml
include: calamari.yml
when: calamari