]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Update the Docker bootstrap part 286/head
authorSébastien Han <seb@redhat.com>
Wed, 24 Jun 2015 13:51:54 +0000 (15:51 +0200)
committerSébastien Han <seb@redhat.com>
Thu, 25 Jun 2015 10:14:23 +0000 (12:14 +0200)
We now use ceph/daemon as a default container image so reflecting the
change here.

Signed-off-by: Sébastien Han <seb@redhat.com>
20 files changed:
group_vars/mdss [new file with mode: 0644]
group_vars/mons
group_vars/osds
group_vars/rgws [new file with mode: 0644]
roles/ceph-mds/defaults/main.yml
roles/ceph-mds/meta/main.yml
roles/ceph-mds/tasks/docker.yml
roles/ceph-mon/defaults/main.yml
roles/ceph-mon/meta/main.yml
roles/ceph-mon/tasks/create_mds_filesystems.yml
roles/ceph-mon/tasks/docker.yml
roles/ceph-mon/tasks/main.yml
roles/ceph-mon/tasks/secure_cluster.yml
roles/ceph-osd/defaults/main.yml
roles/ceph-osd/meta/main.yml
roles/ceph-osd/tasks/docker.yml
roles/ceph-radosgw/defaults/main.yml
roles/ceph-radosgw/meta/main.yml
roles/ceph-radosgw/tasks/docker.yml
roles/ceph-restapi/meta/main.yml

diff --git a/group_vars/mdss b/group_vars/mdss
new file mode 100644 (file)
index 0000000..22fa572
--- /dev/null
@@ -0,0 +1,13 @@
+---\r
+dummy:\r
+\r
+#cephx: true\r
+\r
+\r
+##########\r
+# DOCKER #\r
+##########\r
+\r
+#ceph_containerized_deployment: false\r
+#ceph_mds_docker_username: ceph\r
+#ceph_mds_docker_imagename: daemon\r
index 9f956de6a525323f0dd78f03231223bded2d5f9c..5258fab52dd35dfd170efaee42e286dc8d58f9f6 100644 (file)
@@ -62,6 +62,7 @@ dummy:
 ##########\r
 \r
 #ceph_containerized_deployment: false\r
-#ceph_mon_docker_interface: eth0\r
 #ceph_mon_docker_username: ceph\r
-#ceph_mon_docker_imagename: "mon:latest"\r
+#ceph_mon_docker_imagename: "daemon"\r
+#ceph_mon_docker_interface: eth0\r
+#ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface\r
index 94a90af7abfa08632f6b521749ad7079b6fd0558..8f593f5da4fa1386e53c4190de8755b9975fec78 100644 (file)
@@ -105,3 +105,14 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
 #  - /var/lib/ceph/osd/mydir2
 #  - /var/lib/ceph/osd/mydir3
 #  - /var/lib/ceph/osd/mydir4
+
+
+##########
+# DOCKER #
+##########
+
+#ceph_containerized_deployment: false
+#ceph_osd_docker_username: ceph
+#ceph_osd_docker_imagename: daemon
+#ceph_osd_docker_devices:
+#  - /dev/sdb
diff --git a/group_vars/rgws b/group_vars/rgws
new file mode 100644 (file)
index 0000000..9e085b5
--- /dev/null
@@ -0,0 +1,25 @@
+---\r
+dummy:\r
+\r
+## Ceph options\r
+#\r
+#cephx: true\r
+\r
+# Toggle 100-continue support for Apache and FastCGI\r
+# WARNING: Changing this value will cause an outage of Apache while it is reinstalled on RGW nodes\r
+#http_100_continue: false\r
+\r
+# Rados Gateway options\r
+#redhat_distro_ceph_extra: centos6.4 # supported distros are centos6.3, centos6.4, centos6, fedora18, fedora19, opensuse12.2, rhel6.3, rhel6.4, rhel6.5, rhel6, sles11sp2\r
+#email_address: foo@bar.com\r
+#radosgw_frontend: civetweb # we currently only support a single backend\r
+\r
+\r
+##########\r
+# DOCKER #\r
+##########\r
+\r
+#ceph_containerized_deployment: false\r
+#ceph_rgw_docker_username: ceph\r
+#ceph_rgw_docker_imagename: daemon\r
+#ceph_rgw_civetweb_port: 80\r
index 6734ef27538a9dd8b4bff8d0a14d92b22c69f607..fc5abef356d7f99c93fd8eb234a93dfdd1280afe 100644 (file)
@@ -10,4 +10,4 @@ cephx: true
 \r
 ceph_containerized_deployment: false\r
 ceph_mds_docker_username: ceph\r
-ceph_mds_docker_imagename: "mds:latest"\r
+ceph_mds_docker_imagename: daemon\r
index 671c228bc455430b95c7a97a100ddc80b8046983..6343fba4d2eea2cf06bcbc7938219f5974a1b716 100644 (file)
@@ -1,3 +1,3 @@
 ---
 dependencies:
-  - { role: ceph-common}
+  - { role: ceph-common, when: not docker }
index a10345aaf194932ae3c22eb20cda7530066b61a3..bf1c1084143424a0127c4b3320be9525140dee42 100644 (file)
@@ -1,29 +1,46 @@
 ---
-- name: fetch Ceph config and keys
+- name: set config and keys paths
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/ceph.client.admin.keyring
+      - /etc/ceph/ceph.conf
+      - /etc/ceph/monmap
+      - /etc/ceph/ceph.mon.keyring
+      - /var/lib/ceph/bootstrap-mds/ceph.keyring
+
+- name: install docker-py
+  pip: name=docker-py version=1.1.0 # https://github.com/ansible/ansible-modules-core/issues/1227
+
+- name: stat for Ceph config and keys
+  stat: >
+    path={{ item }}
+  with_items: ceph_config_keys
+  register: statconfig
+  ignore_errors: True
+
+- name: try to fetch Ceph config and keys
   copy: >
-    src=fetch/docker_mon_files/{{ item }}
+    src=fetch/docker_mon_files/"{{ item }}"
     dest=/etc/ceph/
     owner=root
     group=root
     mode=600
-  with_items:
-    - /etc/ceph/ceph.client.admin.keyring
-    - /etc/ceph/ceph.conf
-    - /etc/ceph/monmap
-    - /etc/ceph/ceph.mon.keyring
+  with_together:
+    - ceph_config_keys
+    - statconfig.results
+  when: item.1.stat.exists == False
 
-- name: run the Ceph Medata docker image
+- name: run the ceph medata docker image
   docker: >
     image="{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}"
-    name=ceph-mds-{{ ansible_hostname }}
+    name=ceph-{{ ansible_hostname }}-mds
     net=host
     state=running
-    env="MDS_NAME=ceph-mds-{{ ansible_hostname }}, MDS_CIVETWEB_PORT={{ ceph_mds_civetweb_port }}"
+    env="CEPH_DAEMON=MDS,CEPHFS_CREATE=1"
     volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph"
 
 - name: ensure ceph_mds service is running
   docker: >
     image="{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}"
-    name="ceph-{{ ansible_hostname }}"
-    detach=yes
+    name="ceph-{{ ansible_hostname }}-mds"
     state=running
index ad48166fe444249cabc0d8e65d906211b179d182..33f98506a1e4cd72df14ee0bfe59838dd2f6219d 100644 (file)
@@ -59,5 +59,6 @@ openstack_keys:
 \r
 ceph_containerized_deployment: false\r
 ceph_mon_docker_interface: eth0\r
+#ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface\r
 ceph_mon_docker_username: ceph\r
-ceph_mon_docker_imagename: "mon:latest"\r
+ceph_mon_docker_imagename: daemon\r
index 671c228bc455430b95c7a97a100ddc80b8046983..6343fba4d2eea2cf06bcbc7938219f5974a1b716 100644 (file)
@@ -1,3 +1,3 @@
 ---
 dependencies:
-  - { role: ceph-common}
+  - { role: ceph-common, when: not docker }
index ecf5c8ccaabf458d479c53d9093c0bce60c4ba90..769024b1440e1d4a054d7d7cf6ab723becf16687 100644 (file)
@@ -1,11 +1,17 @@
 ---
+# NOTE (leseb): in the present playbook the conditional is done on the task
+# We don't do this in main.yml because of the 'docker' variable, when set to true
+# 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 osd pool create {{ item }} {{ pool_default_pg_num }}
   with_items:
     - cephfs_data
     - cephfs_metadata
   changed_when: False
+  when: not {{ ceph_version.stdout | version_compare('0.84', '<') }}
 
 - name: create Ceph Filesystem
   command: ceph fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}
   changed_when: False
+  when: not {{ ceph_version.stdout | version_compare('0.84', '<') }}
index eb1c47203df9214ea1c953757c8c3a25da99adce..0abbe669f66ba7b93ec095ae1c00e2c371e18258 100644 (file)
@@ -1,17 +1,33 @@
 ---
+- name: set config and keys paths
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/ceph.client.admin.keyring
+      - /etc/ceph/ceph.conf
+      - /etc/ceph/monmap
+      - /etc/ceph/ceph.mon.keyring
+
+- name: install docker-py
+  pip: name=docker-py version=1.1.0 # https://github.com/ansible/ansible-modules-core/issues/1227
+
+- name: stat for Ceph config and keys
+  stat: >
+    path={{ item }}
+  with_items: ceph_config_keys
+  register: statconfig
+  ignore_errors: True
+
 - name: try to fetch Ceph config and keys
   copy: >
-    src=fetch/docker_mon_files/{{ item }}
+    src=fetch/docker_mon_files/"{{ item }}"
     dest=/etc/ceph/
     owner=root
     group=root
     mode=600
-  with_items:
-    - /etc/ceph/ceph.client.admin.keyring
-    - /etc/ceph/ceph.conf
-    - /etc/ceph/monmap
-    - /etc/ceph/ceph.mon.keyring
-  ignore_errors: true
+  with_together:
+    - ceph_config_keys
+    - statconfig.results
+  when: item.1.stat.exists == False
 
 - name: run the Ceph Monitor docker image
   docker: >
@@ -19,7 +35,7 @@
     name=ceph-{{ ansible_hostname }}
     net=host
     state=running
-    env="MON_NAME=ceph-{{ ansible_hostname }},MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }}"
+    env="MON_NAME=ceph-{{ ansible_hostname }},MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }},CEPH_DAEMON=MON, CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }}"
     volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph"
 
 - name: ensure ceph_mon service is running
@@ -40,3 +56,6 @@
     - /etc/ceph/ceph.conf
     - /etc/ceph/monmap
     - /etc/ceph/ceph.mon.keyring
+    - /var/lib/ceph/bootstrap-osd/ceph.keyring
+    - /var/lib/ceph/bootstrap-rgw/ceph.keyring
+    - /var/lib/ceph/bootstrap-mds/ceph.keyring
index 576f3fb5114092c3d52a0b56a0c4aad077374294..0d950290993fc04891ddab590567ff08853b93f2 100644 (file)
@@ -9,10 +9,10 @@
   when: not ceph_containerized_deployment
 
 - include: create_mds_filesystems.yml
-  when: not ceph_containerized_deployment and not {{ ceph_version.stdout | version_compare('0.84', '<') }} and mds
+  when: not ceph_containerized_deployment and mds
 
 - include: secure_cluster.yml
-  when: secure_cluster and {{ ceph_version.stdout | version_compare('0.94', '>=') }}
+  when: secure_cluster and not ceph_containerized_deployment
   tags: secure_cluster
 
 - include: docker.yml
index 4ce5ec2b8161d9fb2a9b431a0f3a818bf35162c8..6e5f6cc3770b374ee9aa6e67c1ae39c59ea52d8f 100644 (file)
@@ -2,9 +2,11 @@
 - name: collect all the pool
   command: rados lspools
   register: ceph_pools
+  when: "{{ ceph_version.stdout | version_compare('0.94', '>=') }}"
 
 - name: secure the cluster
   command: ceph osd pool set {{ item[0] }} {{ item[1] }} true
   with_nested:
     - ceph_pools.stdout_lines
     - secure_cluster_flags
+  when: "{{ ceph_version.stdout | version_compare('0.94', '>=') }}"
index f18ed49bb064ee443a483611c9e47c24173707d8..8754f6661d15a30e3f6cc7a360502a82c44742e6 100644 (file)
@@ -110,4 +110,5 @@ osd_directories:
 \r
 ceph_containerized_deployment: false\r
 ceph_osd_docker_username: ceph\r
-ceph_osd_docker_imagename: "osd:latest"\r
+ceph_osd_docker_imagename: daemon\r
+#ceph_osd_docker_device: /dev/sdb\r
index 671c228bc455430b95c7a97a100ddc80b8046983..6343fba4d2eea2cf06bcbc7938219f5974a1b716 100644 (file)
@@ -1,3 +1,3 @@
 ---
 dependencies:
-  - { role: ceph-common}
+  - { role: ceph-common, when: not docker }
index 73687446a7f6b720849898aaecefd6b866aa1962..735476733010859106153178a114531f3446c57a 100644 (file)
@@ -1,29 +1,49 @@
 ---
-- name: fetch Ceph config and keys
+- name: set config and keys paths
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/ceph.client.admin.keyring
+      - /etc/ceph/ceph.conf
+      - /etc/ceph/monmap
+      - /etc/ceph/ceph.mon.keyring
+      - /var/lib/ceph/bootstrap-osd/ceph.keyring
+
+- name: install docker-py
+  pip: name=docker-py version=1.1.0 # https://github.com/ansible/ansible-modules-core/issues/1227
+
+- name: stat for Ceph config and keys
+  stat: >
+    path={{ item }}
+  with_items: ceph_config_keys
+  register: statconfig
+  ignore_errors: True
+
+- name: try to fetch Ceph config and keys
   copy: >
-    src=fetch/docker_mon_files/{{ item }}
+    src=fetch/docker_mon_files/"{{ item }}"
     dest=/etc/ceph/
     owner=root
     group=root
     mode=600
-  with_items:
-    - /etc/ceph/ceph.client.admin.keyring
-    - /etc/ceph/ceph.conf
-    - /etc/ceph/monmap
-    - /etc/ceph/ceph.mon.keyring
+  with_together:
+    - ceph_config_keys
+    - statconfig.results
+  when: item.1.stat.exists == False
 
 - name: run the Ceph OSD docker image
   docker: >
     image="{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}"
-    name=ceph-{{ ansible_hostname }}
+    name={{ ansible_hostname }}-osd-{{ item | regex_replace('/', '') }}
     net=host
     state=running
-    env="OSD_NAME=ceph-{{ ansible_hostname }}"
-    volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph"
+    privileged=yes
+    env="CEPH_DAEMON=OSD_CEPH_DISK,OSD_DEVICE={{ item }}"
+    volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/dev/:/dev/"
+  with_items: ceph_osd_docker_devices
 
 - name: ensure ceph_osd service is running
   docker: >
     image="{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}"
-    name="ceph-{{ ansible_hostname }}"
-    detach=yes
-    state=running
+    name={{ ansible_hostname }}-osd-{{ item | regex_replace('/', '') }}
+    state=started
+  with_items: ceph_osd_docker_devices
index 241b2a83ce01c0b2d7af8c3106c14322f8c8fe40..0db6f633cdfaefe6b852c9da987a6fecb9f9ec47 100644 (file)
@@ -22,4 +22,4 @@ radosgw_frontend: civetweb # we currently only support a single backend
 ceph_containerized_deployment: false\r
 ceph_rgw_civetweb_port: 80\r
 ceph_rgw_docker_username: ceph\r
-ceph_rgw_docker_imagename: "rgw:latest"\r
+ceph_rgw_docker_imagename: daemon\r
index 671c228bc455430b95c7a97a100ddc80b8046983..6343fba4d2eea2cf06bcbc7938219f5974a1b716 100644 (file)
@@ -1,3 +1,3 @@
 ---
 dependencies:
-  - { role: ceph-common}
+  - { role: ceph-common, when: not docker }
index 5d19e5464263271f1672c94fe86ebe681854f4e5..fe8de1a66533b9605c5c6afb9b189d58df3030b8 100644 (file)
@@ -1,29 +1,47 @@
 ---
-- name: fetch Ceph config and keys
+- name: set config and keys paths
+  set_fact:
+    ceph_config_keys:
+      - /etc/ceph/ceph.client.admin.keyring
+      - /etc/ceph/ceph.conf
+      - /etc/ceph/monmap
+      - /etc/ceph/ceph.mon.keyring
+      - /var/lib/ceph/bootstrap-rgw/ceph.keyring
+
+- name: install docker-py
+  pip: name=docker-py version=1.1.0 # https://github.com/ansible/ansible-modules-core/issues/1227
+
+- name: stat for Ceph config and keys
+  stat: >
+    path={{ item }}
+  with_items: ceph_config_keys
+  register: statconfig
+  ignore_errors: True
+
+- name: try to fetch Ceph config and keys
   copy: >
-    src=fetch/docker_mon_files/{{ item }}
+    src=fetch/docker_mon_files/"{{ item }}"
     dest=/etc/ceph/
     owner=root
     group=root
     mode=600
-  with_items:
-    - /etc/ceph/ceph.client.admin.keyring
-    - /etc/ceph/ceph.conf
-    - /etc/ceph/monmap
-    - /etc/ceph/ceph.mon.keyring
+  with_together:
+    - ceph_config_keys
+    - statconfig.results
+  when: item.1.stat.exists == False
 
-- name: run the Ceph Monitor docker image
+- name: run the rados gateway docker image
   docker: >
     image="{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}"
-    name=ceph-rgw-{{ ansible_hostname }}
-    net=host
+    name=ceph-{{ ansible_hostname }}-rgw
+    expose={{ ceph_rgw_civetweb_port }}
     state=running
-    env="RGW_NAME=ceph-rgw-{{ ansible_hostname }}, RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}"
+    env="RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }},CEPH_DAEMON=RGW"
     volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph"
 
 - name: ensure ceph_rgw service is running
   docker: >
     image="{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}"
-    name="ceph-{{ ansible_hostname }}"
+    name="ceph-{{ ansible_hostname }}-rgw"
     detach=yes
     state=running
index 671c228bc455430b95c7a97a100ddc80b8046983..6343fba4d2eea2cf06bcbc7938219f5974a1b716 100644 (file)
@@ -1,3 +1,3 @@
 ---
 dependencies:
-  - { role: ceph-common}
+  - { role: ceph-common, when: not docker }