From 7184d21af58c0e37e3fac5a593ad642eaa21de34 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Han?= Date: Tue, 28 Jul 2015 17:35:47 +0200 Subject: [PATCH] Re-arrange docker invocation and fix bootstrap rgw MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Sébastien Han --- group_vars/rgws.sample | 1 + roles/ceph-mds/tasks/docker.yml | 49 ------------------ roles/ceph-rgw/defaults/main.yml | 1 + roles/ceph-rgw/tasks/docker.yml | 50 ------------------- roles/ceph-rgw/tasks/docker/fetch_configs.yml | 26 ++++++++++ roles/ceph-rgw/tasks/docker/main.yml | 4 ++ roles/ceph-rgw/tasks/docker/pre_requisite.yml | 11 ++++ .../tasks/docker/start_docker_rgw.yml | 9 ++++ roles/ceph-rgw/tasks/main.yml | 2 +- 9 files changed, 53 insertions(+), 100 deletions(-) delete mode 100644 roles/ceph-mds/tasks/docker.yml delete mode 100644 roles/ceph-rgw/tasks/docker.yml create mode 100644 roles/ceph-rgw/tasks/docker/fetch_configs.yml create mode 100644 roles/ceph-rgw/tasks/docker/main.yml create mode 100644 roles/ceph-rgw/tasks/docker/pre_requisite.yml create mode 100644 roles/ceph-rgw/tasks/docker/start_docker_rgw.yml diff --git a/group_vars/rgws.sample b/group_vars/rgws.sample index 9f6c9a616..15ff7150c 100644 --- a/group_vars/rgws.sample +++ b/group_vars/rgws.sample @@ -28,3 +28,4 @@ dummy: #ceph_rgw_docker_username: ceph #ceph_rgw_docker_imagename: daemon #ceph_rgw_civetweb_port: 80 +#ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables diff --git a/roles/ceph-mds/tasks/docker.yml b/roles/ceph-mds/tasks/docker.yml deleted file mode 100644 index 2707c4eb6..000000000 --- a/roles/ceph-mds/tasks/docker.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- -- 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 - -# NOTE (leseb): force 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 - -- name: stat for ceph config and keys - stat: > - path={{ item }} - with_items: ceph_config_keys - ignore_errors: true - register: statconfig - -- name: try to fetch ceph config and keys - copy: > - src=fetch/docker_mon_files/"{{ item }}" - dest=/etc/ceph/ - owner=root - group=root - mode=600 - with_together: - - ceph_config_keys - - statconfig.results - when: item.1.stat.exists == true - -- name: run the ceph medata docker image - docker: > - image="{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}" - name=ceph-{{ ansible_hostname }}-mds - net=host - state=running - 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 }}-mds" - state=running diff --git a/roles/ceph-rgw/defaults/main.yml b/roles/ceph-rgw/defaults/main.yml index 6bb65fe4f..1046e481e 100644 --- a/roles/ceph-rgw/defaults/main.yml +++ b/roles/ceph-rgw/defaults/main.yml @@ -28,3 +28,4 @@ ceph_containerized_deployment: false ceph_rgw_civetweb_port: 80 ceph_rgw_docker_username: ceph ceph_rgw_docker_imagename: daemon +ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables diff --git a/roles/ceph-rgw/tasks/docker.yml b/roles/ceph-rgw/tasks/docker.yml deleted file mode 100644 index 6445b7472..000000000 --- a/roles/ceph-rgw/tasks/docker.yml +++ /dev/null @@ -1,50 +0,0 @@ ---- -- 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 - -# NOTE (leseb): force 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 - -- name: stat for ceph config and keys - stat: > - path={{ item }} - with_items: ceph_config_keys - ignore_errors: true - register: statconfig - -- name: try to fetch ceph config and keys - copy: > - src=fetch/docker_mon_files/"{{ item }}" - dest=/etc/ceph/ - owner=root - group=root - mode=600 - with_together: - - ceph_config_keys - - statconfig.results - when: item.1.stat.exists == true - -- name: run the rados gateway docker image - docker: > - image="{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}" - name=ceph-{{ ansible_hostname }}-rgw - expose={{ ceph_rgw_civetweb_port }} - state=running - 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 }}-rgw" - detach=yes - state=running diff --git a/roles/ceph-rgw/tasks/docker/fetch_configs.yml b/roles/ceph-rgw/tasks/docker/fetch_configs.yml new file mode 100644 index 000000000..a7ffd9b37 --- /dev/null +++ b/roles/ceph-rgw/tasks/docker/fetch_configs.yml @@ -0,0 +1,26 @@ +--- +- name: set config and keys paths + set_fact: + ceph_config_keys: + - /etc/ceph/ceph.conf + - /var/lib/ceph/bootstrap-rgw/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-rgw/tasks/docker/main.yml b/roles/ceph-rgw/tasks/docker/main.yml new file mode 100644 index 000000000..43676be1a --- /dev/null +++ b/roles/ceph-rgw/tasks/docker/main.yml @@ -0,0 +1,4 @@ +--- +- include: pre_requisite.yml +- include: fetch_configs.yml +- include: start_docker_rgw.yml diff --git a/roles/ceph-rgw/tasks/docker/pre_requisite.yml b/roles/ceph-rgw/tasks/docker/pre_requisite.yml new file mode 100644 index 000000000..99704d7e5 --- /dev/null +++ b/roles/ceph-rgw/tasks/docker/pre_requisite.yml @@ -0,0 +1,11 @@ +--- +- name: create rgw bootstrap directory + file: > + path=/var/lib/ceph/bootstrap-rgw + 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-rgw/tasks/docker/start_docker_rgw.yml b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml new file mode 100644 index 000000000..d39e9f64c --- /dev/null +++ b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml @@ -0,0 +1,9 @@ +--- +- name: run the rados gateway docker image + docker: > + image="{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}" + name=ceph-{{ ansible_hostname }}-rgw + expose={{ ceph_rgw_civetweb_port }} + state=running + env="CEPH_DAEMON=RGW,{{ ceph_rgw_docker_extra_env }}" + volumes="/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph" diff --git a/roles/ceph-rgw/tasks/main.yml b/roles/ceph-rgw/tasks/main.yml index 0ce9168c7..04d1bf8d3 100644 --- a/roles/ceph-rgw/tasks/main.yml +++ b/roles/ceph-rgw/tasks/main.yml @@ -37,5 +37,5 @@ - include: start_radosgw.yml when: not ceph_containerized_deployment -- include: docker.yml +- include: ./docker/main.yml when: ceph_containerized_deployment -- 2.39.5