]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Adding ceph-osd continerized deployment with kv store
authorpprokop <pprokop@gklab-126-023.igk.intel.com>
Tue, 29 Mar 2016 08:23:31 +0000 (10:23 +0200)
committerpprokop <pprokop@gklab-126-023.igk.intel.com>
Tue, 29 Mar 2016 08:23:31 +0000 (10:23 +0200)
group_vars/all.docker.sample
roles/ceph-osd/defaults/main.yml
roles/ceph-osd/tasks/docker/main.yml
roles/ceph-osd/tasks/docker/start_docker_osd.yml
roles/ceph-osd/tasks/templates/ceph-osd.service.j2 [deleted file]
roles/ceph-osd/templates/ceph-osd.service.j2 [new file with mode: 0644]

index 0f8b52700593091494839df2321babfaed6f6db9..fb434a3116aeb16011cc9ebfafa0e612be123344 100644 (file)
@@ -21,6 +21,9 @@ dummy:
 # OSD #
 #######
 #osd_containerized_deployment: true
+#osd_containerized_deployment_with_kv: false
+#kv_type: etcd
+#kv_endpoint: 127.0.0.1
 #ceph_osd_docker_username: ceph
 #ceph_osd_docker_imagename: daemon
 #ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK_ACTIVATE" # comma separated variables
index 0b86c1fe3f1c1cac672c068d2784639abc62b450..ba768df62018bd64f000292ac201fc5aeebd8e58 100644 (file)
@@ -115,6 +115,10 @@ osd_directory: false
 ##########
 
 osd_containerized_deployment: false
+osd_containerized_deployment_with_kv: false
+kv_type: etcd
+kv_endpoint: 127.0.0.1
+ceph_osd_docker_prepare_env: ""
 ceph_osd_docker_username: ceph
 ceph_osd_docker_imagename: daemon
 ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables
index 2d1ba5b249f66ce3ef5b577d77e736474e0d8b9e..7afa15537eebfe63bec3eba9fd2815b904322a7c 100644 (file)
@@ -6,7 +6,7 @@
   failed_when: false
 
 - include: checks.yml
-  when: ceph_health.rc != 0
+  when: ceph_health.rc != 0 and not osd_containerized_deployment_with_kv
 
 - name: check if it is Atomic host
   stat: path=/run/ostree-booted
       is_atomic='{{ stat_ostree.stat.exists }}'
 
 - include: pre_requisite.yml
+
 - include: selinux.yml
   when: ansible_os_family == 'RedHat'
 
 - include: fetch_configs.yml
+  when: not osd_containerized_deployment_with_kv
+
 - include: start_docker_osd.yml
index 2892f92628d77c353a6c374abd39a11c7ca64447..ff59f63607d76df3a35beb38c1a39a53ead02be9 100644 (file)
     env: "OSD_DEVICE={{ item }},{{ ceph_osd_docker_prepare_env }}"
     volumes: "/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/dev/:/dev/"
   with_items: ceph_osd_docker_devices
-  when: ceph_osd_docker_prepare_env is defined
+  when: ceph_osd_docker_prepare_env is defined and not osd_containerized_deployment_with_kv
+
+- name: prepare ceph osd disk with kv_store
+  docker:
+    image: "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}"
+    name: "{{ ansible_hostname }}-osd-prepare-{{ item | regex_replace('/', '') }}"
+    net: host
+    pid: host
+    state: running
+    privileged: yes
+    volumes: "/dev/:/dev/"
+    env: "OSD_DEVICE={{ item }},KV_TYPE={{kv_type}},KV_IP={{kv_endpoint}},{{ ceph_osd_docker_prepare_env }}"
+  ignore_errors: true
+  with_items: ceph_osd_docker_devices
+  when: ceph_osd_docker_prepare_env is defined and osd_containerized_deployment_with_kv
 
 # Use systemd to manage container on Atomic host
 - name: generate systemd unit file
     dest: /etc/systemd/system/multi-user.target.wants/ceph-osd@{{ item | basename }}.service
     state: link
   with_items: ceph_osd_docker_devices
-  when: is_atomic
+  when: is_atomic or ansible_os_family == 'CoreOS'
 
 - name: enable systemd unit file for osd instance
   shell: systemctl enable /etc/systemd/system/multi-user.target.wants/ceph-osd@{{ item | basename }}.service
   failed_when: false
   changed_when: false
   with_items: ceph_osd_docker_devices
-  when: is_atomic
+  when: is_atomic or ansible_os_family == 'CoreOS'
 
 - name: reload systemd unit files
   shell: systemctl daemon-reload
-  when: is_atomic
+  when: is_atomic or ansible_os_family == 'CoreOS'
 
 - name: systemd start osd container
   service:
@@ -63,7 +77,7 @@
     enabled: yes
   changed_when: false
   with_items: ceph_osd_docker_devices
-  when: is_atomic
+  when: is_atomic or ansible_os_family == 'CoreOS'
 
 - name: run the ceph osd docker image
   docker:
@@ -76,4 +90,4 @@
     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
-  when: not is_atomic
+  when: not is_atomic and ansible_os_family != 'CoreOS'
diff --git a/roles/ceph-osd/tasks/templates/ceph-osd.service.j2 b/roles/ceph-osd/tasks/templates/ceph-osd.service.j2
deleted file mode 100644 (file)
index 03efbb1..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-[Unit]
-Description=Ceph OSD
-After=docker.service
-
-[Service]
-EnvironmentFile=/etc/environment
-ExecStartPre=-/usr/bin/docker stop {{ ansible_hostname }}-osd-dev%i
-ExecStartPre=-/usr/bin/docker rm {{ ansible_hostname }}-osd-dev%i
-ExecStart=/usr/bin/docker run --rm --net=host --pid=host\
-   -v /var/lib/ceph:/var/lib/ceph \
-   -v /etc/ceph:/etc/ceph \
-   -v /dev:/dev \
-   --privileged \
-   -e CEPH_DAEMON=OSD_CEPH_DISK_ACTIVATE \
-   -e OSD_DEVICE=/dev/%i \
-   --name={{ ansible_hostname }}-osd-dev%i \
-   {{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}
-ExecStop=-/usr/bin/docker stop {{ ansible_hostname }}-osd-dev%i
-Restart=always
-RestartSec=10s
-TimeoutStartSec=120
-TimeoutStopSec=15
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/roles/ceph-osd/templates/ceph-osd.service.j2 b/roles/ceph-osd/templates/ceph-osd.service.j2
new file mode 100644 (file)
index 0000000..f1c6e99
--- /dev/null
@@ -0,0 +1,30 @@
+[Unit]
+Description=Ceph OSD
+After=docker.service
+
+[Service]
+EnvironmentFile=-/etc/environment
+ExecStartPre=-/usr/bin/docker stop {{ ansible_hostname }}-osd-dev%i
+ExecStartPre=-/usr/bin/docker rm {{ ansible_hostname }}-osd-dev%i
+ExecStart=/usr/bin/docker run --rm --net=host --pid=host\
+   {% if not osd_containerized_deployment_with_kv -%}
+   -v /var/lib/ceph:/var/lib/ceph \
+   -v /etc/ceph:/etc/ceph \
+   {% else -%}
+   -e KV_TYPE={{kv_type}} \
+   -e KV_IP={{kv_endpoint}}\
+   {% endif -%}
+   -v /dev:/dev \
+   --privileged \
+   -e CEPH_DAEMON=OSD_CEPH_DISK_ACTIVATE \
+   -e OSD_DEVICE=/dev/%i \
+   --name={{ ansible_hostname }}-osd-dev%i \
+   {{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}
+ExecStop=-/usr/bin/docker stop {{ ansible_hostname }}-osd-dev%i
+Restart=always
+RestartSec=10s
+TimeoutStartSec=120
+TimeoutStopSec=15
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file