From 65ba85aff66b434600e9dfec738d48c85d21c932 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Han?= Date: Thu, 12 Apr 2018 15:52:30 +0200 Subject: [PATCH] Expose /var/run/ceph MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Useful for softwares that do data collection/monitoring like collectd. They can connect to the socket and then retrieve information. Even though the sockets are exposed now, I'm keeping the docker exec to check the socket, this will allow newer version of ceph-ansible to work with older versions. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1563280 Signed-off-by: Sébastien Han --- roles/ceph-defaults/tasks/create_ceph_initial_dirs.yml | 4 ++-- roles/ceph-defaults/templates/restart_osd_daemon.sh.j2 | 5 ++++- roles/ceph-mds/templates/ceph-mds.service.j2 | 1 + roles/ceph-mgr/tasks/docker/copy_configs.yml | 2 +- roles/ceph-mgr/templates/ceph-mgr.service.j2 | 1 + roles/ceph-mon/tasks/docker/copy_configs.yml | 2 +- roles/ceph-mon/templates/ceph-mon.service.j2 | 1 + roles/ceph-nfs/templates/ceph-nfs.service.j2 | 5 +++-- roles/ceph-osd/tasks/copy_configs.yml | 2 +- roles/ceph-osd/templates/ceph-osd-run.sh.j2 | 1 + roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml | 2 +- roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2 | 1 + roles/ceph-restapi/tasks/docker/copy_configs.yml | 2 +- roles/ceph-rgw/tasks/docker/copy_configs.yml | 2 +- roles/ceph-rgw/templates/ceph-radosgw.service.j2 | 1 + 15 files changed, 21 insertions(+), 11 deletions(-) diff --git a/roles/ceph-defaults/tasks/create_ceph_initial_dirs.yml b/roles/ceph-defaults/tasks/create_ceph_initial_dirs.yml index e53fc2a88..a20f9a453 100644 --- a/roles/ceph-defaults/tasks/create_ceph_initial_dirs.yml +++ b/roles/ceph-defaults/tasks/create_ceph_initial_dirs.yml @@ -19,7 +19,7 @@ file: path: "{{ item }}" state: directory - owner: "{{ ceph_uid if containerized_deployment else 'ceph' }}" - group: "{{ ceph_uid if containerized_deployment else 'ceph' }}" + owner: "{{ ceph_uid }}" + group: "{{ ceph_uid }}" mode: 0755 with_items: "{{ ceph_directories }}" diff --git a/roles/ceph-defaults/templates/restart_osd_daemon.sh.j2 b/roles/ceph-defaults/templates/restart_osd_daemon.sh.j2 index b09b2a020..c04151b19 100644 --- a/roles/ceph-defaults/templates/restart_osd_daemon.sh.j2 +++ b/roles/ceph-defaults/templates/restart_osd_daemon.sh.j2 @@ -28,6 +28,8 @@ check_pgs() { } wait_for_socket_in_docker() { + osd_mount_point=$(docker exec "$1" df --output=target | grep '/var/lib/ceph/osd/') + whoami=$(docker exec "$1" cat $osd_mount_point/whoami) if ! docker exec "$1" timeout 10 bash -c "while [ ! -e /var/run/ceph/*.asok ]; do sleep 1 ; done"; then echo "Timed out while trying to look for a Ceph OSD socket." echo "Abort mission!" @@ -68,7 +70,8 @@ for unit in $(systemctl list-units | grep "loaded active" | grep -oE "ceph-osd@( {% if containerized_deployment -%} id=$(get_dev_name "$unit") container_id=$(get_docker_id_from_dev_name "$id") - osd_id=$(get_docker_osd_id "$container_id") + wait_for_socket_in_docker "$container_id" + osd_id=$whoami docker_exec="docker exec $container_id" {% else %} osd_id=$(echo ${unit#ceph-osd@} | grep -oE '[0-9]{1,2}') diff --git a/roles/ceph-mds/templates/ceph-mds.service.j2 b/roles/ceph-mds/templates/ceph-mds.service.j2 index ce20f45b0..1f6f01164 100644 --- a/roles/ceph-mds/templates/ceph-mds.service.j2 +++ b/roles/ceph-mds/templates/ceph-mds.service.j2 @@ -16,6 +16,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ {% if not containerized_deployment_with_kv -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/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 index c1387cb27..616394456 100644 --- a/roles/ceph-mgr/tasks/docker/copy_configs.yml +++ b/roles/ceph-mgr/tasks/docker/copy_configs.yml @@ -58,4 +58,4 @@ owner: "{{ bootstrap_dirs_owner }}" group: "{{ bootstrap_dirs_group }}" mode: "0600" - when: cephx \ No newline at end of file + when: cephx diff --git a/roles/ceph-mgr/templates/ceph-mgr.service.j2 b/roles/ceph-mgr/templates/ceph-mgr.service.j2 index 9970190f5..5c4ef56b6 100644 --- a/roles/ceph-mgr/templates/ceph-mgr.service.j2 +++ b/roles/ceph-mgr/templates/ceph-mgr.service.j2 @@ -16,6 +16,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ {% if not containerized_deployment_with_kv -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/ceph:z \ {% else -%} -e KV_TYPE={{kv_type}} \ -e KV_IP={{kv_endpoint}} \ diff --git a/roles/ceph-mon/tasks/docker/copy_configs.yml b/roles/ceph-mon/tasks/docker/copy_configs.yml index ab45c78be..dd1d13808 100644 --- a/roles/ceph-mon/tasks/docker/copy_configs.yml +++ b/roles/ceph-mon/tasks/docker/copy_configs.yml @@ -78,4 +78,4 @@ - "{{ statconfig.results }}" when: - item.1.stat.exists == true - - not (item.0 | search("keyring")) \ No newline at end of file + - not (item.0 | search("keyring")) diff --git a/roles/ceph-mon/templates/ceph-mon.service.j2 b/roles/ceph-mon/templates/ceph-mon.service.j2 index 958b327da..23b10fd58 100644 --- a/roles/ceph-mon/templates/ceph-mon.service.j2 +++ b/roles/ceph-mon/templates/ceph-mon.service.j2 @@ -16,6 +16,7 @@ ExecStart=/usr/bin/docker run --rm --name ceph-mon-%i --net=host \ {% if not containerized_deployment_with_kv -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/ceph:z \ {% else -%} -e KV_TYPE={{kv_type}} \ -e KV_IP={{kv_endpoint}}\ diff --git a/roles/ceph-nfs/templates/ceph-nfs.service.j2 b/roles/ceph-nfs/templates/ceph-nfs.service.j2 index 2131a694f..77acbee90 100644 --- a/roles/ceph-nfs/templates/ceph-nfs.service.j2 +++ b/roles/ceph-nfs/templates/ceph-nfs.service.j2 @@ -11,8 +11,9 @@ ExecStart=/usr/bin/docker run --rm --net=host \ {% if not containerized_deployment_with_kv -%} -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 \ + -v /var/lib/nfs/ganesha:/var/lib/nfs/ganesha:z \ + -v /etc/ganesha:/etc/ganesha:z \ + -v /var/run/ceph:/var/run/ceph:z \ {% if ceph_nfs_dynamic_exports %} --privileged \ -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \ diff --git a/roles/ceph-osd/tasks/copy_configs.yml b/roles/ceph-osd/tasks/copy_configs.yml index 98f511a0d..593e846ce 100644 --- a/roles/ceph-osd/tasks/copy_configs.yml +++ b/roles/ceph-osd/tasks/copy_configs.yml @@ -43,4 +43,4 @@ group: root mode: 0644 changed_when: false - with_items: "{{ ceph_config_keys }}" \ No newline at end of file + with_items: "{{ ceph_config_keys }}" diff --git a/roles/ceph-osd/templates/ceph-osd-run.sh.j2 b/roles/ceph-osd/templates/ceph-osd-run.sh.j2 index 19d2bf9fb..02f6611b9 100644 --- a/roles/ceph-osd/templates/ceph-osd-run.sh.j2 +++ b/roles/ceph-osd/templates/ceph-osd-run.sh.j2 @@ -77,6 +77,7 @@ expose_partitions "$1" -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/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 index f9479757f..2133cbe4a 100644 --- a/roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml +++ b/roles/ceph-rbd-mirror/tasks/docker/copy_configs.yml @@ -36,4 +36,4 @@ - "{{ statconfig.results }}" when: - not item.1.get('skipped') - - item.1.stat.exists == true \ No newline at end of file + - item.1.stat.exists == true diff --git a/roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2 b/roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2 index ac7bacc6c..4f966b230 100644 --- a/roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2 +++ b/roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2 @@ -16,6 +16,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ {% if not containerized_deployment_with_kv -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/ceph:z \ {% else -%} -e KV_TYPE={{kv_type}} \ -e KV_IP={{kv_endpoint}} \ diff --git a/roles/ceph-restapi/tasks/docker/copy_configs.yml b/roles/ceph-restapi/tasks/docker/copy_configs.yml index d0ae87ed5..d2c0aee09 100644 --- a/roles/ceph-restapi/tasks/docker/copy_configs.yml +++ b/roles/ceph-restapi/tasks/docker/copy_configs.yml @@ -27,4 +27,4 @@ - "{{ ceph_config_keys }}" - "{{ statconfig.results }}" when: - - item.1.stat.exists == true \ No newline at end of file + - item.1.stat.exists == true diff --git a/roles/ceph-rgw/tasks/docker/copy_configs.yml b/roles/ceph-rgw/tasks/docker/copy_configs.yml index 3a0ce913c..63e9f46bc 100644 --- a/roles/ceph-rgw/tasks/docker/copy_configs.yml +++ b/roles/ceph-rgw/tasks/docker/copy_configs.yml @@ -40,4 +40,4 @@ - "{{ ceph_config_keys }}" - "{{ statconfig.results }}" when: - - item.1.stat.exists == true \ No newline at end of file + - item.1.stat.exists == true diff --git a/roles/ceph-rgw/templates/ceph-radosgw.service.j2 b/roles/ceph-rgw/templates/ceph-radosgw.service.j2 index bd23284ac..6fcbb5f7d 100644 --- a/roles/ceph-rgw/templates/ceph-radosgw.service.j2 +++ b/roles/ceph-rgw/templates/ceph-radosgw.service.j2 @@ -16,6 +16,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ {% if not containerized_deployment_with_kv -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ + -v /var/run/ceph:/var/run/ceph:z \ {% else -%} -e KV_TYPE={{ kv_type }} \ -e KV_IP={{ kv_endpoint }} \ -- 2.39.5