From dda83004c8065fabd9367baf796ebd0b0b776076 Mon Sep 17 00:00:00 2001 From: Huamin Chen Date: Fri, 22 Jan 2016 19:10:41 +0000 Subject: [PATCH] containerize rgw and restapi Signed-off-by: Huamin Chen --- .../tasks/docker/fetch_configs.yml | 2 +- .../tasks/docker/pre_requisite.yml | 41 +++++++++++++++++-- roles/ceph-rgw/tasks/docker/fetch_configs.yml | 2 +- roles/ceph-rgw/tasks/docker/pre_requisite.yml | 41 +++++++++++++++++-- .../tasks/docker/start_docker_rgw.yml | 7 +++- 5 files changed, 81 insertions(+), 12 deletions(-) diff --git a/roles/ceph-restapi/tasks/docker/fetch_configs.yml b/roles/ceph-restapi/tasks/docker/fetch_configs.yml index 919bf0a5c..2faf8ade5 100644 --- a/roles/ceph-restapi/tasks/docker/fetch_configs.yml +++ b/roles/ceph-restapi/tasks/docker/fetch_configs.yml @@ -15,7 +15,7 @@ - name: try to fetch ceph config and keys copy: - src: "{{ fetch_directory }}/docker_mon_files/{{ item.0 }}" + src: "{{ playbook_dir }}/{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}" dest: "{{ item.0 }}" owner: root group: root diff --git a/roles/ceph-restapi/tasks/docker/pre_requisite.yml b/roles/ceph-restapi/tasks/docker/pre_requisite.yml index 3eef68689..f2d9ecd70 100644 --- a/roles/ceph-restapi/tasks/docker/pre_requisite.yml +++ b/roles/ceph-restapi/tasks/docker/pre_requisite.yml @@ -9,6 +9,8 @@ - docker - docker.io when: ansible_distribution == 'Ubuntu' + tags: + with_pkg - name: install pip and docker on debian apt: @@ -19,6 +21,8 @@ - python-pip - docker-engine when: ansible_distribution == 'Debian' + tags: + with_pkg - name: install pip and docker on redhat yum: @@ -30,6 +34,8 @@ when: ansible_os_family == 'RedHat' and ansible_pkg_mgr == "yum" + tags: + with_pkg - name: install pip and docker on redhat dnf: @@ -41,9 +47,36 @@ when: ansible_os_family == 'RedHat' and ansible_pkg_mgr == "dnf" + tags: + with_pkg -# NOTE (leseb): for version 1.1.0 because https://github.com/ansible/ansible-modules-core/issues/1227 -- name: install docker-py +- name: install epel-release on redhat + yum: + name: epel-release + state: present + when: ansible_os_family == 'RedHat' + tags: + with_pkg + +# NOTE (jimcurtis): need at least version 1.9.0 of six or we get: +# re:NameError: global name 'DEFAULT_DOCKER_API_VERSION' is not defined +- name: install six pip: - name: docker-py - version: 1.1.0 + name: six + version: 1.9.0 + tags: + with_pkg + +- name: pause after docker install before starting (on openstack vms) + pause: seconds=5 + when: ceph_docker_on_openstack + tags: + with_pkg + +- name: start docker service + service: + name: docker + state: started + enabled: yes + tags: + with_pkg diff --git a/roles/ceph-rgw/tasks/docker/fetch_configs.yml b/roles/ceph-rgw/tasks/docker/fetch_configs.yml index bd65d7d8f..45dd3bebc 100644 --- a/roles/ceph-rgw/tasks/docker/fetch_configs.yml +++ b/roles/ceph-rgw/tasks/docker/fetch_configs.yml @@ -15,7 +15,7 @@ - name: try to fetch ceph config and keys copy: - src: "{{ fetch_directory }}/docker_mon_files/{{ item.0 }}" + src: "{{ playbook_dir }}/{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}" dest: "{{ item.0 }}" owner: root group: root diff --git a/roles/ceph-rgw/tasks/docker/pre_requisite.yml b/roles/ceph-rgw/tasks/docker/pre_requisite.yml index c0a98451a..d288e6f58 100644 --- a/roles/ceph-rgw/tasks/docker/pre_requisite.yml +++ b/roles/ceph-rgw/tasks/docker/pre_requisite.yml @@ -17,6 +17,8 @@ - docker - docker.io when: ansible_distribution == 'Ubuntu' + tags: + with_pkg - name: install pip and docker on debian apt: @@ -27,6 +29,8 @@ - python-pip - docker-engine when: ansible_distribution == 'Debian' + tags: + with_pkg - name: install pip and docker on redhat yum: @@ -38,6 +42,8 @@ when: ansible_os_family == 'RedHat' and ansible_pkg_mgr == "yum" + tags: + with_pkg - name: install pip and docker on redhat dnf: @@ -49,9 +55,36 @@ when: ansible_os_family == 'RedHat' and ansible_pkg_mgr == "dnf" + tags: + with_pkg -# NOTE (leseb): for version 1.1.0 because https://github.com/ansible/ansible-modules-core/issues/1227 -- name: install docker-py +- name: install epel-release on redhat + yum: + name: epel-release + state: present + when: ansible_os_family == 'RedHat' + tags: + with_pkg + +# NOTE (jimcurtis): need at least version 1.9.0 of six or we get: +# re:NameError: global name 'DEFAULT_DOCKER_API_VERSION' is not defined +- name: install six pip: - name: docker-py - version: 1.1.0 + name: six + version: 1.9.0 + tags: + with_pkg + +- name: pause after docker install before starting (on openstack vms) + pause: seconds=5 + when: ceph_docker_on_openstack + tags: + with_pkg + +- name: start docker service + service: + name: docker + state: started + enabled: yes + tags: + with_pkg diff --git a/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml index 65781fbba..ce551848a 100644 --- a/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml +++ b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml @@ -1,10 +1,13 @@ --- +- name: pull ceph daemon image + shell: "docker pull {{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}" + - 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 }}" + expose: "{{ ceph_rgw_civetweb_port }}" ports: "{{ ceph_rgw_civetweb_port }}:{{ ceph_rgw_civetweb_port }}" state: running - env=: "CEPH_DAEMON=RGW,{{ ceph_rgw_docker_extra_env }}" + env: "CEPH_DAEMON=RGW,{{ ceph_rgw_docker_extra_env }}" volumes: "/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph" -- 2.39.5