#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
#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:
#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
#######
#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
#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
#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
#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
#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
+
#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
#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
#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
---
# 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
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
# 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
- 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
- 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
-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
#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
# 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
---
- 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
- 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
- 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:
- 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:
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
- 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"
- 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"
-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
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
# 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
---
- 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
- 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
- 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"
- 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"
-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
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
# 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
- 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.
-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
- 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
-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
TimeoutStopSec=15
[Install]
-WantedBy=multi-user.target
\ No newline at end of file
+WantedBy=multi-user.target
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
---
- 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
- 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
---
- 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 }}"
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
# 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
- 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.
- 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 }}"
--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