From 6f5f6610a8f67ceb1ac24e7529edd29bc839d1c1 Mon Sep 17 00:00:00 2001 From: Ivan Font Date: Fri, 8 Jul 2016 18:38:13 -0700 Subject: [PATCH] Support for docker image tags Signed-off-by: Ivan Font --- group_vars/all.docker.sample | 5 +++++ group_vars/mdss.sample | 1 + group_vars/mons.sample | 1 + group_vars/nfss.sample | 2 ++ group_vars/osds.sample | 1 + group_vars/restapis.sample | 1 + group_vars/rgws.sample | 1 + roles/ceph-common/tasks/docker/fetch_image.yml | 12 ++++++------ roles/ceph-mds/defaults/main.yml | 1 + roles/ceph-mds/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-mds/tasks/docker/main.yml | 5 +++-- roles/ceph-mds/tasks/docker/start_docker_mds.yml | 2 +- roles/ceph-mds/templates/ceph-mds.service.j2 | 2 +- roles/ceph-mon/defaults/main.yml | 2 +- roles/ceph-mon/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-mon/tasks/docker/main.yml | 7 ++++--- roles/ceph-mon/tasks/docker/start_docker_monitor.yml | 10 +++++----- roles/ceph-mon/templates/ceph-mon.service.j2 | 2 +- roles/ceph-nfs/defaults/main.yml | 1 + roles/ceph-nfs/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-nfs/tasks/docker/main.yml | 7 ++++--- roles/ceph-nfs/tasks/docker/start_docker_nfs.yml | 4 ++-- roles/ceph-nfs/templates/ceph-nfs.service.j2 | 2 +- roles/ceph-osd/defaults/main.yml | 1 + roles/ceph-osd/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-osd/tasks/docker/main.yml | 5 +++-- roles/ceph-osd/tasks/docker/start_docker_osd.yml | 4 ++-- roles/ceph-osd/templates/ceph-osd.service.j2 | 4 ++-- roles/ceph-restapi/defaults/main.yml | 1 + roles/ceph-restapi/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-restapi/tasks/docker/main.yml | 5 +++-- .../tasks/docker/start_docker_restapi.yml | 2 +- roles/ceph-rgw/defaults/main.yml | 1 + roles/ceph-rgw/tasks/docker/dirs_permissions.yml | 2 +- roles/ceph-rgw/tasks/docker/main.yml | 5 +++-- roles/ceph-rgw/tasks/docker/start_docker_rgw.yml | 2 +- roles/ceph-rgw/templates/ceph-rgw.service.j2 | 2 +- 37 files changed, 68 insertions(+), 45 deletions(-) diff --git a/group_vars/all.docker.sample b/group_vars/all.docker.sample index 120608e50..eb1943af2 100644 --- a/group_vars/all.docker.sample +++ b/group_vars/all.docker.sample @@ -18,6 +18,7 @@ dummy: #mon_docker_privileged: true #ceph_mon_docker_username: ceph #ceph_mon_docker_imagename: daemon +#ceph_mon_docker_image_tag: latest #ceph_mon_docker_interface: "{{ monitor_interface }}" #ceph_mon_docker_subnet: "{{ public_network }}" # subnet of the ceph_mon_docker_interface #ceph_mon_extra_envs: "MON_NAME={{ ansible_hostname }}" # comma separated variables @@ -31,6 +32,7 @@ dummy: #kv_endpoint: 127.0.0.1 #ceph_osd_docker_username: ceph #ceph_osd_docker_imagename: daemon +#ceph_osd_docker_image_tag: latest #ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK_ACTIVATE" # comma separated variables #ceph_osd_docker_prepare_env: "OSD_FORCE_ZAP=1" # comma separated variables #ceph_osd_docker_devices: @@ -46,6 +48,7 @@ dummy: #kv_endpoint: 127.0.0.1 #ceph_mds_docker_username: ceph #ceph_mds_docker_imagename: daemon +#ceph_mds_docker_image_tag: latest #ceph_mds_docker_extra_env: "MDS_NAME={{ ansible_hostname }}" # comma separated variables ####### @@ -57,6 +60,7 @@ dummy: #kv_endpoint: 127.0.0.1 #ceph_rgw_docker_username: ceph #ceph_rgw_docker_imagename: daemon +#ceph_rgw_docker_image_tag: latest #ceph_rgw_civetweb_port: 80 #ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables @@ -68,4 +72,5 @@ dummy: #ceph_restapi_port: 5000 #ceph_restapi_docker_username: ceph #ceph_restapi_docker_imagename: daemon +#ceph_restapi_docker_image_tag: latest #ceph_restapi_docker_extra_env: "RESTAPI_IP=0.0.0.0" # comma separated variables diff --git a/group_vars/mdss.sample b/group_vars/mdss.sample index a7da9c514..308ac192e 100644 --- a/group_vars/mdss.sample +++ b/group_vars/mdss.sample @@ -34,6 +34,7 @@ dummy: #kv_endpoint: 127.0.0.1 #ceph_mds_docker_username: ceph #ceph_mds_docker_imagename: daemon +#ceph_mds_docker_image_tag: latest #ceph_mds_docker_extra_env: "MDS_NAME={{ ansible_hostname }}" # comma separated variables #ceph_docker_on_openstack: false diff --git a/group_vars/mons.sample b/group_vars/mons.sample index 784cdcb90..9e40b9850 100644 --- a/group_vars/mons.sample +++ b/group_vars/mons.sample @@ -77,6 +77,7 @@ dummy: #ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface #ceph_mon_docker_username: ceph #ceph_mon_docker_imagename: daemon +#ceph_mon_docker_image_tag: latest #ceph_mon_extra_envs: "MON_NAME={{ ansible_hostname }}" # comma separated variables #ceph_docker_on_openstack: false #mon_docker_privileged: false diff --git a/group_vars/nfss.sample b/group_vars/nfss.sample index f2f2353dc..8e378d247 100644 --- a/group_vars/nfss.sample +++ b/group_vars/nfss.sample @@ -64,5 +64,7 @@ dummy: #kv_endpoint: 127.0.0.1 #ceph_nfs_docker_username: ceph #ceph_nfs_docker_imagename: ganesha +#ceph_nfs_docker_image_tag: latest #ceph_nfs_docker_extra_env: "GANESHA_EPOCH={{ ganesha_epoch }}" # comma separated variables #ceph_docker_on_openstack: false + diff --git a/group_vars/osds.sample b/group_vars/osds.sample index a6ba6d678..7fb63f381 100644 --- a/group_vars/osds.sample +++ b/group_vars/osds.sample @@ -134,6 +134,7 @@ dummy: #ceph_osd_docker_prepare_env: "OSD_FORCE_ZAP=1" #ceph_osd_docker_username: ceph #ceph_osd_docker_imagename: daemon +#ceph_osd_docker_image_tag: latest #ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables #ceph_osd_docker_devices: # - /dev/sdb diff --git a/group_vars/restapis.sample b/group_vars/restapis.sample index e58bfbb31..f21cbcef7 100644 --- a/group_vars/restapis.sample +++ b/group_vars/restapis.sample @@ -23,6 +23,7 @@ dummy: #ceph_restapi_port: 5000 #ceph_restapi_docker_username: ceph #ceph_restapi_docker_imagename: daemon +#ceph_restapi_docker_image_tag: latest #ceph_restapi_docker_extra_env: "RESTAPI_IP=0.0.0.0" # comma separated variables #ceph_docker_on_openstack: false diff --git a/group_vars/rgws.sample b/group_vars/rgws.sample index 9f87fcafb..3916c9ab7 100644 --- a/group_vars/rgws.sample +++ b/group_vars/rgws.sample @@ -41,6 +41,7 @@ dummy: #ceph_rgw_civetweb_port: 80 #ceph_rgw_docker_username: ceph #ceph_rgw_docker_imagename: daemon +#ceph_rgw_docker_image_tag: latest #ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables #ceph_docker_on_openstack: false diff --git a/roles/ceph-common/tasks/docker/fetch_image.yml b/roles/ceph-common/tasks/docker/fetch_image.yml index 646a27d12..0e2757da9 100644 --- a/roles/ceph-common/tasks/docker/fetch_image.yml +++ b/roles/ceph-common/tasks/docker/fetch_image.yml @@ -1,26 +1,26 @@ --- # Normal case - pull image from registry - name: pull ceph daemon image - command: "docker pull {{ ceph_docker_username }}/{{ ceph_docker_imagename }}" + command: "docker pull {{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}" changed_when: false when: ceph_docker_dev_image is undefined or not ceph_docker_dev_image # Dev case - export local dev image and send it across - name: export local ceph dev image - local_action: command docker save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}.tar" "{{ ceph_docker_username }}/{{ ceph_docker_imagename }}" + local_action: command docker save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" "{{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}" when: ceph_docker_dev_image is defined and ceph_docker_dev_image run_once: true - name: copy ceph dev image file copy: - src: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}.tar" - dest: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}.tar" + src: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" + dest: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" when: ceph_docker_dev_image is defined and ceph_docker_dev_image - name: load ceph dev image - command: "docker load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}.tar" + command: "docker load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" when: ceph_docker_dev_image is defined and ceph_docker_dev_image - name: remove tmp ceph dev image file - command: "rm /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}.tar" + command: "rm /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" when: ceph_docker_dev_image is defined and ceph_docker_dev_image diff --git a/roles/ceph-mds/defaults/main.yml b/roles/ceph-mds/defaults/main.yml index 15ed08e91..c20bc7c4f 100644 --- a/roles/ceph-mds/defaults/main.yml +++ b/roles/ceph-mds/defaults/main.yml @@ -26,5 +26,6 @@ kv_type: etcd kv_endpoint: 127.0.0.1 ceph_mds_docker_username: ceph ceph_mds_docker_imagename: daemon +ceph_mds_docker_image_tag: latest ceph_mds_docker_extra_env: "MDS_NAME={{ ansible_hostname }}" # comma separated variables ceph_docker_on_openstack: false diff --git a/roles/ceph-mds/tasks/docker/dirs_permissions.yml b/roles/ceph-mds/tasks/docker/dirs_permissions.yml index fcf4e5423..e7ef2907f 100644 --- a/roles/ceph-mds/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-mds/tasks/docker/dirs_permissions.yml @@ -2,7 +2,7 @@ # NOTE (leseb): we can not use docker inspect with 'format filed' because of # https://github.com/ansible/ansible/issues/10156 - name: inspect ceph version - shell: docker inspect docker.io/"{{ ceph_mds_docker_username }}"/"{{ ceph_mds_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "docker.io/{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}:{{ ceph_mds_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-mds/tasks/docker/main.yml b/roles/ceph-mds/tasks/docker/main.yml index b51cdf8cb..bfe86f39d 100644 --- a/roles/ceph-mds/tasks/docker/main.yml +++ b/roles/ceph-mds/tasks/docker/main.yml @@ -19,8 +19,9 @@ - include: pre_requisite.yml - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_mds_docker_username}}' - ceph_docker_imagename: '{{ ceph_mds_docker_imagename}}' + ceph_docker_username: "{{ ceph_mds_docker_username }}" + ceph_docker_imagename: "{{ ceph_mds_docker_imagename }}" + ceph_docker_image_tag: "{{ ceph_mds_docker_image_tag }}" - include: dirs_permissions.yml - include: fetch_configs.yml diff --git a/roles/ceph-mds/tasks/docker/start_docker_mds.yml b/roles/ceph-mds/tasks/docker/start_docker_mds.yml index 819a14c16..9f3a7b68c 100644 --- a/roles/ceph-mds/tasks/docker/start_docker_mds.yml +++ b/roles/ceph-mds/tasks/docker/start_docker_mds.yml @@ -39,7 +39,7 @@ - name: run the ceph metadata docker image docker: - image: "{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}" + image: "{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}:{{ ceph_mds_docker_image_tag }}" name: ceph-{{ ansible_hostname }}-mds net: host state: running diff --git a/roles/ceph-mds/templates/ceph-mds.service.j2 b/roles/ceph-mds/templates/ceph-mds.service.j2 index 6c0747128..283183d56 100644 --- a/roles/ceph-mds/templates/ceph-mds.service.j2 +++ b/roles/ceph-mds/templates/ceph-mds.service.j2 @@ -19,7 +19,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ -e CEPHFS_CREATE=1 \ -e {{ ceph_mds_docker_extra_env }} \ --name={{ ansible_hostname }} \ - {{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }} + {{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}:{{ ceph_mds_docker_image_tag }} ExecStopPost=-/usr/bin/docker stop {{ ansible_hostname }} Restart=always RestartSec=10s diff --git a/roles/ceph-mon/defaults/main.yml b/roles/ceph-mon/defaults/main.yml index b8a496a96..2f235ad44 100644 --- a/roles/ceph-mon/defaults/main.yml +++ b/roles/ceph-mon/defaults/main.yml @@ -69,7 +69,7 @@ ceph_mon_docker_interface: eth0 #ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface ceph_mon_docker_username: ceph ceph_mon_docker_imagename: daemon -ceph_mon_docker_tag: latest +ceph_mon_docker_image_tag: latest ceph_mon_extra_envs: "MON_NAME={{ ansible_hostname }}" # comma separated variables ceph_docker_on_openstack: false mon_docker_privileged: false diff --git a/roles/ceph-mon/tasks/docker/dirs_permissions.yml b/roles/ceph-mon/tasks/docker/dirs_permissions.yml index 7a9e83e8a..0742c9c70 100644 --- a/roles/ceph-mon/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-mon/tasks/docker/dirs_permissions.yml @@ -2,7 +2,7 @@ # NOTE (leseb): we can not use docker inspect with 'format filed' because of # https://github.com/ansible/ansible/issues/10156 - name: inspect ceph version - shell: docker inspect docker.io/"{{ ceph_mon_docker_username }}"/"{{ ceph_mon_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "docker.io/{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-mon/tasks/docker/main.yml b/roles/ceph-mon/tasks/docker/main.yml index b7b1931e1..d2fc4f8ab 100644 --- a/roles/ceph-mon/tasks/docker/main.yml +++ b/roles/ceph-mon/tasks/docker/main.yml @@ -1,6 +1,6 @@ --- - name: check if a cluster is already running - shell: "docker ps | grep -sq '{{ceph_mon_docker_username}}/{{ceph_mon_docker_imagename}}'" + shell: "docker ps | grep -sq '{{ceph_mon_docker_username}}/{{ceph_mon_docker_imagename}}:{{ceph_mon_docker_image_tag}}'" register: ceph_health changed_when: false failed_when: false @@ -22,8 +22,9 @@ - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_mon_docker_username}}' - ceph_docker_imagename: '{{ ceph_mon_docker_imagename}}' + ceph_docker_username: "{{ ceph_mon_docker_username }}" + ceph_docker_imagename: "{{ ceph_mon_docker_imagename }}" + ceph_docker_image_tag: "{{ ceph_mon_docker_image_tag }}" - include: dirs_permissions.yml diff --git a/roles/ceph-mon/tasks/docker/start_docker_monitor.yml b/roles/ceph-mon/tasks/docker/start_docker_monitor.yml index 8e85db1ba..7072a2e25 100644 --- a/roles/ceph-mon/tasks/docker/start_docker_monitor.yml +++ b/roles/ceph-mon/tasks/docker/start_docker_monitor.yml @@ -2,7 +2,7 @@ - name: populate kv_store with default ceph.conf docker: name: populate-kv-store - image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }}" + image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" command: populate_kvstore net: host env: @@ -18,7 +18,7 @@ - name: populate kv_store with custom ceph.conf docker: name: populate-kv-store - image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }}" + image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" command: populate_kvstore net: host env: @@ -37,7 +37,7 @@ docker: name: populate-kv-store state: absent - image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }}" + image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" when: mon_containerized_deployment_with_kv # Use systemd to manage container on Atomic host and CoreOS @@ -79,7 +79,7 @@ - name: run the ceph monitor docker image docker: - image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }}" + image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" name: "{{ ansible_hostname }}" net: "host" state: "running" @@ -93,7 +93,7 @@ - name: run the ceph monitor docker image with kv docker: - image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }}" + image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}" name: "{{ ansible_hostname }}" net: "host" state: "running" diff --git a/roles/ceph-mon/templates/ceph-mon.service.j2 b/roles/ceph-mon/templates/ceph-mon.service.j2 index 292089b7f..93c5a66ad 100644 --- a/roles/ceph-mon/templates/ceph-mon.service.j2 +++ b/roles/ceph-mon/templates/ceph-mon.service.j2 @@ -25,7 +25,7 @@ ExecStart=/usr/bin/docker run --rm --name %i --net=host \ -e MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }} \ -e CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }} \ -e MON_NAME={{ ansible_hostname }} \ - {{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_tag }} + {{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }} ExecStopPost=-/usr/bin/docker stop %i Restart=always RestartSec=10s diff --git a/roles/ceph-nfs/defaults/main.yml b/roles/ceph-nfs/defaults/main.yml index 1c725c1ec..64f643e5e 100644 --- a/roles/ceph-nfs/defaults/main.yml +++ b/roles/ceph-nfs/defaults/main.yml @@ -56,5 +56,6 @@ kv_type: etcd kv_endpoint: 127.0.0.1 ceph_nfs_docker_username: ceph ceph_nfs_docker_imagename: ganesha +ceph_nfs_docker_image_tag: latest #ceph_nfs_docker_extra_env: "GANESHA_EPOCH={{ ganesha_epoch }}" # comma separated variables ceph_docker_on_openstack: false diff --git a/roles/ceph-nfs/tasks/docker/dirs_permissions.yml b/roles/ceph-nfs/tasks/docker/dirs_permissions.yml index b58687d0a..87ca765d7 100644 --- a/roles/ceph-nfs/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-nfs/tasks/docker/dirs_permissions.yml @@ -2,7 +2,7 @@ # NOTE (leseb): we can not use docker inspect with 'format filed' because of # https://github.com/ansible/ansible/issues/10156 - name: inspect ceph version - shell: docker inspect "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}:{{ ceph_nfs_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-nfs/tasks/docker/main.yml b/roles/ceph-nfs/tasks/docker/main.yml index e2e000e10..ae9a3cb21 100644 --- a/roles/ceph-nfs/tasks/docker/main.yml +++ b/roles/ceph-nfs/tasks/docker/main.yml @@ -1,6 +1,6 @@ --- - name: check if a cluster is already running - shell: "docker ps | grep -sq '{{ceph_nfs_docker_username}}/{{ceph_nfs_docker_imagename}}'" + shell: "docker ps | grep -sq '{{ceph_nfs_docker_username}}/{{ceph_nfs_docker_imagename}}:{{ceph_nfs_docker_image_tag}}'" register: ceph_health changed_when: false failed_when: false @@ -22,8 +22,9 @@ - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_nfs_docker_username}}' - ceph_docker_imagename: '{{ ceph_nfs_docker_imagename}}' + ceph_docker_username: "{{ ceph_nfs_docker_username }}" + ceph_docker_imagename: "{{ ceph_nfs_docker_imagename }}" + ceph_docker_image_tag: "{{ ceph_nfs_docker_image_tag }}" - include: dirs_permissions.yml diff --git a/roles/ceph-nfs/tasks/docker/start_docker_nfs.yml b/roles/ceph-nfs/tasks/docker/start_docker_nfs.yml index 78d3f166f..77a5a9604 100644 --- a/roles/ceph-nfs/tasks/docker/start_docker_nfs.yml +++ b/roles/ceph-nfs/tasks/docker/start_docker_nfs.yml @@ -54,7 +54,7 @@ - name: run the ceph NFS docker image docker: - image: "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}" + image: "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}:{{ ceph_nfs_docker_image_tag }}" name: "{{ ansible_hostname }}" net: "host" state: "running" @@ -69,7 +69,7 @@ - name: run the ceph NFS docker image with kv docker: - image: "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}" + image: "{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}:{{ ceph_nfs_docker_image_tag }}" name: "{{ ansible_hostname }}" net: "host" state: "running" diff --git a/roles/ceph-nfs/templates/ceph-nfs.service.j2 b/roles/ceph-nfs/templates/ceph-nfs.service.j2 index 1552cad5d..d78d2d0d2 100644 --- a/roles/ceph-nfs/templates/ceph-nfs.service.j2 +++ b/roles/ceph-nfs/templates/ceph-nfs.service.j2 @@ -19,7 +19,7 @@ ExecStart=/usr/bin/docker run --rm --name %i --net=host \ -e CEPH_DAEMON=NFS \ -e CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }} \ --name={{ ansible_hostname }} \ - {{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }} + {{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}:{{ ceph_nfs_docker_image_tag }} ExecStopPost=-/usr/bin/docker stop %i Restart=always RestartSec=10s diff --git a/roles/ceph-osd/defaults/main.yml b/roles/ceph-osd/defaults/main.yml index 7f2c9a2c3..2a4e6f58c 100644 --- a/roles/ceph-osd/defaults/main.yml +++ b/roles/ceph-osd/defaults/main.yml @@ -126,6 +126,7 @@ kv_endpoint: 127.0.0.1 ceph_osd_docker_prepare_env: "OSD_FORCE_ZAP=1" ceph_osd_docker_username: ceph ceph_osd_docker_imagename: daemon +ceph_osd_docker_image_tag: latest ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables #ceph_osd_docker_devices: # - /dev/sdb diff --git a/roles/ceph-osd/tasks/docker/dirs_permissions.yml b/roles/ceph-osd/tasks/docker/dirs_permissions.yml index 4c14f1556..986e4498f 100644 --- a/roles/ceph-osd/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-osd/tasks/docker/dirs_permissions.yml @@ -2,7 +2,7 @@ # NOTE (leseb): we can not use docker inspect with 'format filed' because of # https://github.com/ansible/ansible/issues/10156 - name: inspect ceph version - shell: docker inspect docker.io/"{{ ceph_osd_docker_username }}"/"{{ ceph_osd_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "docker.io/{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-osd/tasks/docker/main.yml b/roles/ceph-osd/tasks/docker/main.yml index f7fbc0686..6db55a173 100644 --- a/roles/ceph-osd/tasks/docker/main.yml +++ b/roles/ceph-osd/tasks/docker/main.yml @@ -22,8 +22,9 @@ - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_osd_docker_username}}' - ceph_docker_imagename: '{{ ceph_osd_docker_imagename}}' + ceph_docker_username: '{{ ceph_osd_docker_username }}' + ceph_docker_imagename: '{{ ceph_osd_docker_imagename }}' + ceph_docker_image_tag: '{{ ceph_osd_docker_image_tag }}' # NOTE (jimcurtis): dirs_permissions.yml must precede fetch_configs.yml # because it creates the directories needed by the latter. diff --git a/roles/ceph-osd/tasks/docker/start_docker_osd.yml b/roles/ceph-osd/tasks/docker/start_docker_osd.yml index 3e5910d2c..bc214eee7 100644 --- a/roles/ceph-osd/tasks/docker/start_docker_osd.yml +++ b/roles/ceph-osd/tasks/docker/start_docker_osd.yml @@ -30,7 +30,7 @@ -v /dev:/dev \ -e "OSD_DEVICE={{ item.0 }}" \ -e "{{ ceph_osd_docker_prepare_env }}" \ - "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}" \ + "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}" \ OSD_CEPH_DISK_PREPARE with_together: - ceph_osd_docker_devices @@ -42,7 +42,7 @@ - name: prepare ceph osd disk with kv_store docker: - image: "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}" + image: "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}" name: "{{ ansible_hostname }}-osd-prepare-{{ item.0 | regex_replace('/', '') }}" net: host pid: host diff --git a/roles/ceph-osd/templates/ceph-osd.service.j2 b/roles/ceph-osd/templates/ceph-osd.service.j2 index 5f7dc5983..7ca3826da 100644 --- a/roles/ceph-osd/templates/ceph-osd.service.j2 +++ b/roles/ceph-osd/templates/ceph-osd.service.j2 @@ -19,7 +19,7 @@ ExecStart=/usr/bin/docker run --rm --net=host --pid=host\ -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 }} + {{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }} ExecStop=-/usr/bin/docker stop {{ ansible_hostname }}-osd-dev%i Restart=always RestartSec=10s @@ -27,4 +27,4 @@ TimeoutStartSec=120 TimeoutStopSec=15 [Install] -WantedBy=multi-user.target \ No newline at end of file +WantedBy=multi-user.target diff --git a/roles/ceph-restapi/defaults/main.yml b/roles/ceph-restapi/defaults/main.yml index 4ac192eed..cfe565922 100644 --- a/roles/ceph-restapi/defaults/main.yml +++ b/roles/ceph-restapi/defaults/main.yml @@ -15,5 +15,6 @@ ceph_restapi_docker_interface: eth0 ceph_restapi_port: 5000 ceph_restapi_docker_username: ceph ceph_restapi_docker_imagename: daemon +ceph_restapi_docker_image_tag: latest ceph_restapi_docker_extra_env: "RESTAPI_IP=0.0.0.0" # comma separated variables ceph_docker_on_openstack: false diff --git a/roles/ceph-restapi/tasks/docker/dirs_permissions.yml b/roles/ceph-restapi/tasks/docker/dirs_permissions.yml index dda476fc3..9d4f7da24 100644 --- a/roles/ceph-restapi/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-restapi/tasks/docker/dirs_permissions.yml @@ -1,6 +1,6 @@ --- - name: inspect ceph version - shell: docker inspect docker.io/"{{ ceph_restapi_docker_username }}"/"{{ ceph_restapi_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "docker.io/{{ ceph_restapi_docker_username }}/{{ ceph_restapi_docker_imagename }}:{{ ceph_restapi_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-restapi/tasks/docker/main.yml b/roles/ceph-restapi/tasks/docker/main.yml index a46bcd5bc..a0945cc1f 100644 --- a/roles/ceph-restapi/tasks/docker/main.yml +++ b/roles/ceph-restapi/tasks/docker/main.yml @@ -2,8 +2,9 @@ - include: pre_requisite.yml - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_restapi_docker_username}}' - ceph_docker_imagename: '{{ ceph_restapi_docker_imagename}}' + ceph_docker_username: "{{ ceph_restapi_docker_username }}" + ceph_docker_imagename: "{{ ceph_restapi_docker_imagename }}" + ceph_docker_image_tag: "{{ ceph_restapi_docker_image_tag }}" - include: dirs_permissions.yml - include: fetch_configs.yml - include: start_docker_restapi.yml diff --git a/roles/ceph-restapi/tasks/docker/start_docker_restapi.yml b/roles/ceph-restapi/tasks/docker/start_docker_restapi.yml index fdde266fa..40e6b355b 100644 --- a/roles/ceph-restapi/tasks/docker/start_docker_restapi.yml +++ b/roles/ceph-restapi/tasks/docker/start_docker_restapi.yml @@ -1,7 +1,7 @@ --- - name: run the ceph rest api docker image docker: - image: "{{ ceph_restapi_docker_username }}/{{ ceph_restapi_docker_imagename }}" + image: "{{ ceph_restapi_docker_username }}/{{ ceph_restapi_docker_imagename }}:{{ ceph_restapi_docker_image_tag }}" name: "{{ ansible_hostname }}-ceph-restapi" net: host expose: "{{ ceph_restapi_port }}" diff --git a/roles/ceph-rgw/defaults/main.yml b/roles/ceph-rgw/defaults/main.yml index 0573ec8fc..3b9282e36 100644 --- a/roles/ceph-rgw/defaults/main.yml +++ b/roles/ceph-rgw/defaults/main.yml @@ -33,5 +33,6 @@ kv_endpoint: 127.0.0.1 ceph_rgw_civetweb_port: 80 ceph_rgw_docker_username: ceph ceph_rgw_docker_imagename: daemon +ceph_rgw_docker_image_tag: latest ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables ceph_docker_on_openstack: false diff --git a/roles/ceph-rgw/tasks/docker/dirs_permissions.yml b/roles/ceph-rgw/tasks/docker/dirs_permissions.yml index 52d2adde8..ccdf915fb 100644 --- a/roles/ceph-rgw/tasks/docker/dirs_permissions.yml +++ b/roles/ceph-rgw/tasks/docker/dirs_permissions.yml @@ -2,7 +2,7 @@ # NOTE (leseb): we can not use docker inspect with 'format filed' because of # https://github.com/ansible/ansible/issues/10156 - name: inspect ceph version - shell: docker inspect docker.io/"{{ ceph_rgw_docker_username }}"/"{{ ceph_rgw_docker_imagename }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq + shell: docker inspect "docker.io/{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}:{{ ceph_rgw_docker_image_tag }}" | awk -F '=' '/CEPH_VERSION/ { gsub ("\",", "", $2); print $2 }' | uniq changed_when: false failed_when: false run_once: true diff --git a/roles/ceph-rgw/tasks/docker/main.yml b/roles/ceph-rgw/tasks/docker/main.yml index 65fa60263..d94ac3964 100644 --- a/roles/ceph-rgw/tasks/docker/main.yml +++ b/roles/ceph-rgw/tasks/docker/main.yml @@ -19,8 +19,9 @@ - include: pre_requisite.yml - include: "{{ playbook_dir }}/roles/ceph-common/tasks/docker/fetch_image.yml" vars: - ceph_docker_username: '{{ ceph_rgw_docker_username}}' - ceph_docker_imagename: '{{ ceph_rgw_docker_imagename}}' + ceph_docker_username: "{{ ceph_rgw_docker_username }}" + ceph_docker_imagename: "{{ ceph_rgw_docker_imagename }}" + ceph_docker_image_tag: "{{ ceph_rgw_docker_image_tag }}" - include: dirs_permissions.yml # NOTE (jimcurtis): dirs_permissions.yml must precede fetch_configs.yml # because it creates the directories needed by the latter. diff --git a/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml index 452770267..11e9f910e 100644 --- a/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml +++ b/roles/ceph-rgw/tasks/docker/start_docker_rgw.yml @@ -39,7 +39,7 @@ - name: run the rados gateway docker image docker: - image: "{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}" + image: "{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}:{{ ceph_rgw_docker_image_tag }}" name: ceph-{{ ansible_hostname }}-rgw expose: "{{ ceph_rgw_civetweb_port }}" ports: "{{ ceph_rgw_civetweb_port }}:{{ ceph_rgw_civetweb_port }}" diff --git a/roles/ceph-rgw/templates/ceph-rgw.service.j2 b/roles/ceph-rgw/templates/ceph-rgw.service.j2 index e7115e4b9..5a173f95b 100644 --- a/roles/ceph-rgw/templates/ceph-rgw.service.j2 +++ b/roles/ceph-rgw/templates/ceph-rgw.service.j2 @@ -17,7 +17,7 @@ ExecStart=/usr/bin/docker run --rm --net=host \ --privileged \ -e CEPH_DAEMON=RGW \ --name={{ ansible_hostname }} \ - {{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }} + {{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}:{{ ceph_rgw_docker_image_tag }} ExecStopPost=-/usr/bin/docker stop {{ ansible_hostname }} Restart=always RestartSec=10s -- 2.39.5