]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Re-arrange docker invocation and fix bootstrap 347/head
authorSébastien Han <seb@redhat.com>
Tue, 28 Jul 2015 14:05:35 +0000 (16:05 +0200)
committerSébastien Han <seb@redhat.com>
Tue, 28 Jul 2015 14:05:35 +0000 (16:05 +0200)
Signed-off-by: Sébastien Han <seb@redhat.com>
group_vars/osds.sample
roles/ceph-osd/defaults/main.yml
roles/ceph-osd/tasks/docker/fetch_configs.yml [new file with mode: 0644]
roles/ceph-osd/tasks/docker/main.yml [new file with mode: 0644]
roles/ceph-osd/tasks/docker/pre_requisite.yml [new file with mode: 0644]
roles/ceph-osd/tasks/docker/start_docker_osd.yml [new file with mode: 0644]
roles/ceph-osd/tasks/main.yml

index 640c9e86a1b209aa93dd2885942f233bdb08f7ac..15a116dbae17646cfb89b3ceb5d681487444eebb 100644 (file)
@@ -114,5 +114,6 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
 #ceph_containerized_deployment: false
 #ceph_osd_docker_username: ceph
 #ceph_osd_docker_imagename: daemon
-#ceph_osd_docker_devices:
-#  - /dev/sdb
+#ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables
+#ceph_osd_docker_device:
+# - /dev/sdb
index c32b25614626eed1d6979e8d42b5a0df0ae1730b..1703fb6b35a6ebe6e15faeceacf9dee7b98cd510 100644 (file)
@@ -109,4 +109,6 @@ osd_directory: false
 ceph_containerized_deployment: false\r
 ceph_osd_docker_username: ceph\r
 ceph_osd_docker_imagename: daemon\r
-#ceph_osd_docker_device: /dev/sdb\r
+ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables\r
+#ceph_osd_docker_device:\r
+# - /dev/sdb\r
diff --git a/roles/ceph-osd/tasks/docker/fetch_configs.yml b/roles/ceph-osd/tasks/docker/fetch_configs.yml
new file mode 100644 (file)
index 0000000..c4f00d4
--- /dev/null
@@ -0,0 +1,26 @@
+---
+- name: set config and keys paths
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/ceph.conf
+      - /var/lib/ceph/bootstrap-osd/ceph.keyring
+
+- name: stat for ceph config and keys
+  local_action: stat path={{ item }}
+  with_items: ceph_config_keys
+  changed_when: false
+  sudo: false
+  ignore_errors: true
+  register: statconfig
+
+- name: try to fetch ceph config and keys
+  copy: >
+    src=fetch/docker_mon_files/{{ item.0 }}
+    dest={{ item.0 }}
+    owner=root
+    group=root
+    mode=644
+  with_together:
+    - ceph_config_keys
+    - statconfig.results
+  when: item.1.stat.exists == true
diff --git a/roles/ceph-osd/tasks/docker/main.yml b/roles/ceph-osd/tasks/docker/main.yml
new file mode 100644 (file)
index 0000000..149043f
--- /dev/null
@@ -0,0 +1,4 @@
+---
+- include: pre_requisite.yml
+- include: fetch_configs.yml
+- include: start_docker_osd.yml
diff --git a/roles/ceph-osd/tasks/docker/pre_requisite.yml b/roles/ceph-osd/tasks/docker/pre_requisite.yml
new file mode 100644 (file)
index 0000000..77ed25f
--- /dev/null
@@ -0,0 +1,11 @@
+---
+- name: create osd bootstrap directory
+  file: >
+    path=/var/lib/ceph/bootstrap-osd
+    state=directory
+
+# NOTE (leseb): for version 1.1.0 because https://github.com/ansible/ansible-modules-core/issues/1227
+- name: install docker-py
+  pip: >
+    name=docker-py
+    version=1.1.0
diff --git a/roles/ceph-osd/tasks/docker/start_docker_osd.yml b/roles/ceph-osd/tasks/docker/start_docker_osd.yml
new file mode 100644 (file)
index 0000000..82bbb72
--- /dev/null
@@ -0,0 +1,11 @@
+---
+- name: run the ceph osd docker image
+  docker: >
+    image="{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}"
+    name={{ ansible_hostname }}-osd-{{ item | regex_replace('/', '') }}
+    net=host
+    state=running
+    privileged=yes
+    env="OSD_DEVICE={{ item }},{{ ceph_osd_docker_extra_env }}"
+    volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/dev/:/dev/"
+  with_items: ceph_osd_docker_devices
index c092f933e14ebb166b3a1ecb1e2e53a7edfddb37..f6070888f86191e17c92d5755bcf5ae0294dc5b6 100644 (file)
@@ -12,5 +12,5 @@
 - include: ./scenarios/osd_directory.yml
   when: osd_directory and not ceph_containerized_deployment
 
-- include: ./scenarios/docker.yml
+- include: ./docker/main.yml
   when: ceph_containerized_deployment