]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
selinux: remove chcon calls
authorSébastien Han <seb@redhat.com>
Tue, 17 Apr 2018 13:32:53 +0000 (15:32 +0200)
committerSébastien Han <seb@redhat.com>
Thu, 19 Apr 2018 12:59:37 +0000 (14:59 +0200)
We know bindmount with the :z option at the end of the -v command so
this will basically run the exact same command as we used to run. So to
speak:

chcon -Rt svirt_sandbox_file_t /var/lib/ceph

Signed-off-by: Sébastien Han <seb@redhat.com>
29 files changed:
infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
roles/ceph-client/tasks/create_users_keys.yml
roles/ceph-client/tasks/pre_requisite.yml
roles/ceph-defaults/tasks/facts.yml
roles/ceph-mds/tasks/containerized.yml
roles/ceph-mds/templates/ceph-mds.service.j2
roles/ceph-mgr/tasks/docker/copy_configs.yml [new file with mode: 0644]
roles/ceph-mgr/tasks/docker/main.yml
roles/ceph-mgr/tasks/docker/selinux.yml [deleted file]
roles/ceph-mgr/templates/ceph-mgr.service.j2
roles/ceph-mon/tasks/docker/copy_configs.yml
roles/ceph-mon/templates/ceph-mon.service.j2
roles/ceph-nfs/tasks/pre_requisite_container.yml
roles/ceph-nfs/templates/ceph-nfs.service.j2
roles/ceph-osd/tasks/copy_configs.yml [new file with mode: 0644]
roles/ceph-osd/tasks/docker/main.yml
roles/ceph-osd/tasks/docker/selinux.yml [deleted file]
roles/ceph-osd/tasks/scenarios/collocated.yml
roles/ceph-osd/tasks/scenarios/non-collocated.yml
roles/ceph-osd/templates/ceph-osd-run.sh.j2
roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml [new file with mode: 0644]
roles/ceph-rbd-mirror/tasks/docker/main.yml
roles/ceph-rbd-mirror/tasks/docker/selinux.yml [deleted file]
roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2
roles/ceph-restapi/tasks/docker/copy_configs.yml
roles/ceph-rgw/tasks/docker/copy_configs.yml [new file with mode: 0644]
roles/ceph-rgw/tasks/docker/main.yml
roles/ceph-rgw/tasks/docker/selinux.yml [deleted file]
roles/ceph-rgw/templates/ceph-radosgw.service.j2

index adaf4165f677c45815f5a517d48f0225b145bf5a..b7e73b77d3767499b93f4ad607379cfe72ba8677 100644 (file)
   become: true
 
   tasks:
-    - name: check if selinux is enabled
-      command: getenforce
-      register: sestatus
-      changed_when: false
-      when: ansible_os_family == 'RedHat'
-
-    - name: set selinux permissions
-      command: chcon -Rt svirt_sandbox_file_t "{{ item }}"
-      with_items:
-        - /etc/ceph
-        - /var/lib/ceph
-      changed_when: false
-      when:
-        - sestatus.stdout != 'Disabled'
-        - ansible_os_family == 'RedHat'
-
     - name: gather and delegate facts
       setup:
       delegate_to: "{{ item }}"
index 65dac47cb0d3a4f040f36f30beb7769d27928c83..f316106217405eab92501907fb525e247609a69a 100644 (file)
@@ -17,7 +17,7 @@
     docker run \
     --rm \
     -d \
-    -v {{ ceph_conf_key_directory }}:{{ ceph_conf_key_directory }} \
+    -v {{ ceph_conf_key_directory }}:{{ ceph_conf_key_directory }}:z \
     --name ceph-create-keys \
     --entrypoint=sleep \
     {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
index a02fa03b7c67186a5077ab99204961d9edb401b9..3a426893a3a10266ac9ae25954840bad0a32a461 100644 (file)
@@ -1,15 +1,5 @@
 ---
-- name: set selinux permissions
-  shell: |
-    chcon -Rt svirt_sandbox_file_t /etc/ceph
-  changed_when: false
-  when:
-    - containerized_deployment
-    - ansible_os_family == 'RedHat'
-    - sestatus is defined
-    - sestatus.stdout != 'Disabled'
-
-- name: copy ceph admin keyring if needed
+- name: copy ceph admin keyring when non containerized deployment
   copy:
     src: "{{ fetch_directory }}/{{ fsid }}/etc/ceph/{{ cluster }}.client.admin.keyring"
     dest: "/etc/ceph/"
index b2c9561ad7859ad7c58eb2d7c4b24b63111f6825..b029b6cebe0c318633795df95941bb6a916cad4f 100644 (file)
     - not osd_auto_discovery|default(False)
     - osd_scenario|default('dummy') != 'lvm'
 
-- name: set_fact ceph_uid for Debian based system
+- name: set_fact ceph_uid for debian based system
   set_fact:
     ceph_uid: 64045
   when:
     - containerized_deployment
     - ceph_docker_image_tag | search("ubuntu")
 
-- name: set_fact ceph_uid for Red Hat based system
+- name: set_fact ceph_uid for red hat based system
   set_fact:
     ceph_uid: 167
   when:
     - containerized_deployment
     - ceph_docker_image_tag | search("latest") or ceph_docker_image_tag | search("centos") or ceph_docker_image_tag | search("fedora")
 
-- name: set_fact ceph_uid for Red Hat
+- name: set_fact ceph_uid for red hat
   set_fact:
     ceph_uid: 167
   when:
     - containerized_deployment
     - ceph_docker_image | search("rhceph")
-
-- name: check if selinux is enabled
-  command: getenforce
-  register: sestatus
-  changed_when: false
-  check_mode: no
-  when:
-    - ansible_os_family == 'RedHat'
index d34348299279a9d7a2c964616d3a15cce0724003..8bce2695784ad2cf57e3a2edc448ea8016f9093a 100644 (file)
@@ -3,16 +3,47 @@
   set_fact:
     docker_exec_cmd: "docker exec ceph-mds-{{ ansible_hostname }}"
 
-- name: set selinux permissions
-  shell: |
-    chcon -Rt svirt_sandbox_file_t {{ item }}
-  with_items:
-    - "{{ ceph_conf_key_directory }}"
-    - /var/lib/ceph
-  changed_when: false
+- name: set_fact admin_keyring
+  set_fact:
+    admin_keyring:
+      - "/etc/ceph/{{ cluster }}.client.admin.keyring"
   when:
-    - ansible_os_family == 'RedHat'
-    - sestatus.stdout != 'Disabled'
+    - copy_admin_key
+
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring
+
+- name: merge ceph_config_keys and admin_keyring
+  set_fact:
+    ceph_config_keys: "{{ ceph_config_keys + admin_keyring }}"
+  when:
+    - copy_admin_key
+
+- name: stat for ceph config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  failed_when: false
+  check_mode: no
+  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: generate systemd unit file
   become: true
index a7adea5b42c36da4235a42622453a492252c82f4..ce20f45b0610178b6597a5a36927bb20bdc633a4 100644 (file)
@@ -14,8 +14,8 @@ ExecStart=/usr/bin/docker run --rm --net=host \
   --cpu-quota={{ ceph_mds_docker_cpu_limit * 100000 }} \
   {% endif -%}
   {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   {% else -%}
   -e KV_TYPE={{kv_type}} \
   -e KV_IP={{kv_endpoint}} \
diff --git a/roles/ceph-mgr/tasks/docker/copy_configs.yml b/roles/ceph-mgr/tasks/docker/copy_configs.yml
new file mode 100644 (file)
index 0000000..c1387cb
--- /dev/null
@@ -0,0 +1,61 @@
+---
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/{{ cluster }}.mgr.{{ ansible_hostname }}.keyring
+      - /etc/ceph/{{ cluster }}.client.admin.keyring
+
+- name: stat for ceph config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  failed_when: false
+  check_mode: no
+  register: statconfig
+
+- name: try to fetch ceph keys
+  copy:
+    src: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
+    dest: "{{ item.0 }}"
+    owner: "{{ ceph_uid }}"
+    mode: 0600
+  changed_when: false
+  with_together:
+    - "{{ ceph_config_keys }}"
+    - "{{ statconfig.results }}"
+  when:
+    - item.1.stat.exists == true
+    - item.0 | search("keyring")
+
+- name: try to fetch ceph config
+  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
+    - not (item.0 | search("keyring"))
+
+- name: "copy mgr key to /var/lib/ceph/mgr/{{ cluster }}-{{ ansible_hostname }}/keyring"
+  command: cp /etc/ceph/{{ cluster }}.mgr.{{ ansible_hostname }}.keyring /var/lib/ceph/mgr/{{ cluster }}-{{ ansible_hostname }}/keyring
+  changed_when: false
+  check_mode: no
+  with_items: "{{ statconfig.results }}"
+  when: item.stat.exists == true
+
+- name: set ceph mgr key permission
+  file:
+    path: "/var/lib/ceph/mgr/{{ cluster }}-{{ ansible_hostname }}/keyring"
+    owner: "{{ bootstrap_dirs_owner }}"
+    group: "{{ bootstrap_dirs_group }}"
+    mode: "0600"
+  when: cephx
\ No newline at end of file
index d7c56c6a7cad77087716f2b59dc21566f3710f70..257c62c1dd6c474a6c15279e5f96fadf33d164ee 100644 (file)
@@ -1,6 +1,3 @@
 ---
-- name: include selinux.yml
-  include: selinux.yml
-
 - name: include start_docker_mgr.yml
   include: start_docker_mgr.yml
diff --git a/roles/ceph-mgr/tasks/docker/selinux.yml b/roles/ceph-mgr/tasks/docker/selinux.yml
deleted file mode 100644 (file)
index 9461fff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- 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'
index 7dcd9cc8708ad76b239f7b1358df2a1813b0ebf4..9970190f5a4ac099182f551bf7b0285cfa50a43d 100644 (file)
@@ -14,8 +14,8 @@ ExecStart=/usr/bin/docker run --rm --net=host \
   --cpu-quota={{ ceph_mgr_docker_cpu_limit * 100000 }} \
   {% endif -%}
   {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   {% else -%}
   -e KV_TYPE={{kv_type}} \
   -e KV_IP={{kv_endpoint}} \
index c8485f2fec98f5e4f3e0da851d76ea16fc6b674a..ab45c78beec2afbe94a1571cff974da3f8e1d0da 100644 (file)
     - "{{ statconfig.results }}"
   when:
     - item.1.stat.exists == true
-    - not (item.0 | search("keyring"))
-
-- 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'
+    - not (item.0 | search("keyring"))
\ No newline at end of file
index 9fe9d6774d7630087796409a21283948ec08c043..958b327dad8629dcb8fa230df5cab0cfdc286a70 100644 (file)
@@ -14,8 +14,8 @@ ExecStart=/usr/bin/docker run --rm --name ceph-mon-%i --net=host \
   --cpu-quota={{ ceph_mon_docker_cpu_limit * 100000 }} \
 {% endif -%}
 {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
 {% else -%}
   -e KV_TYPE={{kv_type}} \
   -e KV_IP={{kv_endpoint}}\
index 792b0b8e5b49f86747f484f2170ba1e297a279b4..ab4d27f6e752a91c16ed7f9ab0674b3dad58dab4 100644 (file)
@@ -1,14 +1,46 @@
 ---
-- name: set selinux permissions
-  shell: |
-    chcon -Rt svirt_sandbox_file_t {{ item }}
-  with_items:
-    - "{{ ceph_conf_key_directory }}"
-    - /var/lib/ceph
+- name: set_fact admin_keyring
+  set_fact:
+    admin_keyring:
+      - "/etc/ceph/{{ cluster }}.client.admin.keyring"
+  when:
+    - copy_admin_key
+
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring
+
+- name: merge ceph_config_keys and admin_keyring
+  set_fact:
+    ceph_config_keys: "{{ ceph_config_keys + admin_keyring }}"
+  when:
+    - copy_admin_key
+
+- name: stat for config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  failed_when: false
+  check_mode: no
+  register: statconfig
+
+- name: try to fetch config and keys
+  copy:
+    src: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
+    dest: "{{ item.0 }}"
+    owner: "64045"
+    group: "64045"
+    mode: 0644
   changed_when: false
+  with_together:
+    - "{{ ceph_config_keys }}"
+    - "{{ statconfig.results }}"
   when:
-    - ansible_os_family == 'RedHat'
-    - sestatus.stdout != 'Disabled'
+    - item.1.stat.exists == true
 
 - name: create dbus service file
   become: true
index 9f7cbcf1e18add285e5827802a4896abf9cce0f5..2131a694fd6ba510af7b7549f2de85362977d13e 100644 (file)
@@ -9,8 +9,8 @@ ExecStartPre=-/usr/bin/docker rm ceph-nfs-%i
 ExecStartPre=/usr/bin/mkdir -p /etc/ceph /etc/ganesha /var/lib/nfs/ganesha
 ExecStart=/usr/bin/docker run --rm --net=host \
   {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   -v /var/lib/nfs/ganesha:/var/lib/nfs/ganesha \
   -v /etc/ganesha:/etc/ganesha \
   {% if ceph_nfs_dynamic_exports %}
diff --git a/roles/ceph-osd/tasks/copy_configs.yml b/roles/ceph-osd/tasks/copy_configs.yml
new file mode 100644 (file)
index 0000000..98f511a
--- /dev/null
@@ -0,0 +1,46 @@
+---
+- name: set_fact admin_keyring
+  set_fact:
+    admin_keyring:
+      - "/etc/ceph/{{ cluster }}.client.admin.keyring"
+  when:
+    - copy_admin_key
+
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /var/lib/ceph/bootstrap-osd/{{ cluster }}.keyring
+
+- name: merge ceph_config_keys and admin_keyring
+  set_fact:
+    ceph_config_keys: "{{ ceph_config_keys + admin_keyring }}"
+  when:
+    - copy_admin_key
+
+- name: wait for ceph.conf and keys
+  local_action:
+    module: wait_for
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  become: false
+  with_items: "{{ ceph_config_keys }}"
+
+- name: stat for ceph config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  failed_when: false
+  check_mode: no
+  register: statconfig
+
+- name: try to copy ceph config and keys
+  copy:
+    src: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+    dest: "{{ item }}"
+    owner: root
+    group: root
+    mode: 0644
+  changed_when: false
+  with_items: "{{ ceph_config_keys }}"
\ No newline at end of file
index 24976553c603d4828db803b1542876f304eb745a..fde59c2d8f1a4eb2eddc2fa1eb567aa923d0bf8e 100644 (file)
@@ -1,6 +1,3 @@
 ---
-- name: include selinux.yml
-  include: selinux.yml
-
 - name: include start_docker_osd.yml
   include: start_docker_osd.yml
diff --git a/roles/ceph-osd/tasks/docker/selinux.yml b/roles/ceph-osd/tasks/docker/selinux.yml
deleted file mode 100644 (file)
index 9461fff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- 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'
index 82cde9da5ee27331343ab9c3983afd667a5a18c7..51354c3eeee262dde605988fa7e0f7b46be70fde 100644 (file)
@@ -8,8 +8,8 @@
     --pid=host \
     --privileged=true \
     --name=ceph-osd-prepare-{{ ansible_hostname }}-{{ item.1 | regex_replace('/dev/', '') }} \
-    -v /etc/ceph:/etc/ceph \
-    -v /var/lib/ceph/:/var/lib/ceph/ \
+    -v /etc/ceph:/etc/ceph:z \
+    -v /var/lib/ceph/:/var/lib/ceph/:z \
     -v /dev:/dev \
     -v /etc/localtime:/etc/localtime:ro \
     -e DEBUG=verbose \
@@ -33,8 +33,8 @@
     --pid=host \
     --privileged=true \
     --name=ceph-osd-prepare-{{ ansible_hostname }}-{{ item.split('/')[-1] }} \
-    -v /etc/ceph:/etc/ceph \
-    -v /var/lib/ceph/:/var/lib/ceph/ \
+    -v /etc/ceph:/etc/ceph:z \
+    -v /var/lib/ceph/:/var/lib/ceph/:z \
     -v /dev:/dev \
     -v /etc/localtime:/etc/localtime:ro \
     -e DEBUG=verbose \
index ac4f914549c4dab7057cfd91068946696334f075..92b09d3ce67a131d367f039f8f36810e2f445ef2 100644 (file)
@@ -8,8 +8,8 @@
     --pid=host \
     --privileged=true \
     --name=ceph-osd-prepare-{{ ansible_hostname }}-{{ item.1 | regex_replace('/dev/', '') }} \
-    -v /etc/ceph:/etc/ceph \
-    -v /var/lib/ceph/:/var/lib/ceph/ \
+    -v /etc/ceph:/etc/ceph:z \
+    -v /var/lib/ceph/:/var/lib/ceph/:z \
     -v /dev:/dev \
     -v /etc/localtime:/etc/localtime:ro \
     -e DEBUG=verbose \
@@ -35,8 +35,8 @@
     --pid=host \
     --privileged=true \
     --name=ceph-osd-prepare-{{ ansible_hostname }}-{{ item.1 | regex_replace('/dev/', '') }} \
-    -v /etc/ceph:/etc/ceph \
-    -v /var/lib/ceph/:/var/lib/ceph/ \
+    -v /etc/ceph:/etc/ceph:z \
+    -v /var/lib/ceph/:/var/lib/ceph/:z \
     -v /dev:/dev \
     -v /etc/localtime:/etc/localtime:ro \
     -e DEBUG=verbose \
index b54b0ac572dd1deecd394549d79b17a119082a40..19d2bf9fb5b89a05048953d9a564be62774a1133 100644 (file)
@@ -8,7 +8,7 @@ DOCKER_ENV=""
 #############
 {% if disk_list.get('rc') == 0 -%}
 function expose_partitions () {
-DOCKER_ENV=$(docker run --rm --net=host --name expose_partitions_${1} --privileged=true -v /dev/:/dev/ -v /etc/ceph:/etc/ceph -e CLUSTER={{ cluster }} -e OSD_DEVICE=/dev/${1} {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} disk_list)
+DOCKER_ENV=$(docker run --rm --net=host --name expose_partitions_${1} --privileged=true -v /dev/:/dev/ -v /etc/ceph:/etc/ceph:z -e CLUSTER={{ cluster }} -e OSD_DEVICE=/dev/${1} {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} disk_list)
   docker rm -f expose_partitions_${1}
 }
 {% else -%}
@@ -75,8 +75,8 @@ expose_partitions "$1"
   {% endif -%}
   -v /dev:/dev \
   -v /etc/localtime:/etc/localtime:ro \
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   $DOCKER_ENV \
   {% if ansible_distribution == 'Ubuntu' -%}
   --security-opt apparmor:unconfined \
diff --git a/roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml b/roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml
new file mode 100644 (file)
index 0000000..f947975
--- /dev/null
@@ -0,0 +1,39 @@
+---
+- name: set_fact bootstrap_rbd_keyring
+  set_fact:
+    bootstrap_rbd_keyring: "/var/lib/ceph/bootstrap-rbd/{{ cluster }}.keyring"
+  when:
+    - ceph_release_num[ceph_release] >= ceph_release_num.luminous
+
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/{{ cluster }}.client.admin.keyring
+      - "{{ bootstrap_rbd_keyring | default('') }}"
+
+- name: stat for ceph config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  failed_when: false
+  check_mode: no
+  register: statconfig
+  when: "item | length > 0"
+
+- 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:
+    - not item.1.get('skipped')
+    - item.1.stat.exists == true
\ No newline at end of file
index d98d3ca4715491be05f32cd227cc151657755df9..8368f9ff2576689734f585e45392fa5dff993cf4 100644 (file)
@@ -1,6 +1,3 @@
 ---
-- name: include selinux.yml
-  include: selinux.yml
-
 - name: include start_docker_rbd_mirror.yml
   include: start_docker_rbd_mirror.yml
diff --git a/roles/ceph-rbd-mirror/tasks/docker/selinux.yml b/roles/ceph-rbd-mirror/tasks/docker/selinux.yml
deleted file mode 100644 (file)
index 9461fff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- 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'
index 902acab1875107b73ef857561467469ac7eb9205..ac7bacc6c56fd1ef0f8f08d151af4408da45d453 100644 (file)
@@ -14,8 +14,8 @@ ExecStart=/usr/bin/docker run --rm --net=host \
   --cpu-quota={{ ceph_rbd_mirror_docker_cpu_limit * 100000 }} \
   {% endif -%}
   {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   {% else -%}
   -e KV_TYPE={{kv_type}} \
   -e KV_IP={{kv_endpoint}} \
index f3da4fce37085b5c9c491d4698aac9bcc3c4abcc..d0ae87ed5ed0811aad4c605809ef69e7033ebb17 100644 (file)
     - "{{ 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'
+    - item.1.stat.exists == true
\ No newline at end of file
diff --git a/roles/ceph-rgw/tasks/docker/copy_configs.yml b/roles/ceph-rgw/tasks/docker/copy_configs.yml
new file mode 100644 (file)
index 0000000..3a0ce91
--- /dev/null
@@ -0,0 +1,43 @@
+---
+- name: set_fact admin_keyring
+  set_fact:
+    admin_keyring:
+      - "/etc/ceph/{{ cluster }}.client.admin.keyring"
+  when:
+    - copy_admin_key
+
+- name: set_fact ceph_config_keys
+  set_fact:
+    ceph_config_keys:
+      - /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring
+
+- name: merge ceph_config_keys and admin_keyring
+  set_fact:
+    ceph_config_keys: "{{ ceph_config_keys + admin_keyring }}"
+  when:
+    - copy_admin_key
+
+- name: stat for ceph config and keys
+  local_action:
+    module: stat
+    path: "{{ fetch_directory }}/{{ fsid }}/{{ item }}"
+  with_items: "{{ ceph_config_keys }}"
+  changed_when: false
+  become: false
+  ignore_errors: true
+  check_mode: no
+  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
\ No newline at end of file
index 2f7ff9b26cf400d1bdb11f14e0a4f32176f22988..0928e5739ff221a26e7471d518bfb8a6c135061e 100644 (file)
@@ -1,6 +1,3 @@
 ---
-- name: include selinux.yml
-  include: selinux.yml
-
 - name: include start_docker_rgw.yml
   include: start_docker_rgw.yml
diff --git a/roles/ceph-rgw/tasks/docker/selinux.yml b/roles/ceph-rgw/tasks/docker/selinux.yml
deleted file mode 100644 (file)
index 9461fff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- 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'
index a8ccead792547c939f1b342e901ad9f9a9e1b23a..bd23284ac0a4a7cf2c06596c145e33de4739e21e 100644 (file)
@@ -14,8 +14,8 @@ ExecStart=/usr/bin/docker run --rm --net=host \
   --cpu-quota={{ ceph_rgw_docker_cpu_limit * 100000 }} \
   {% endif -%}
   {% if not containerized_deployment_with_kv -%}
-  -v /var/lib/ceph:/var/lib/ceph \
-  -v /etc/ceph:/etc/ceph \
+  -v /var/lib/ceph:/var/lib/ceph:z \
+  -v /etc/ceph:/etc/ceph:z \
   {% else -%}
   -e KV_TYPE={{ kv_type }} \
   -e KV_IP={{ kv_endpoint }} \