--- - name: pull ceph daemon image shell: "docker pull {{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}" - name: populate kv_store with default ceph.conf docker: name: populate-kv-store image: ceph/daemon command: populate_kvstore net: host env: KV_TYPE: "{{kv_type}}" KV_IP: "{{kv_endpoint}}" KV_PORT: "{{kv_port}}" run_once: true when: inventory_hostname == groups.mons[0] and mon_containerized_deployment_with_kv and mon_containerized_default_ceph_conf_with_kv - name: populate kv_store with custom ceph.conf docker: name: populate-kv-store image: ceph/daemon command: populate_kvstore net: host env: KV_TYPE: "{{kv_type}}" KV_IP: "{{kv_endpoint}}" KV_PORT: "{{kv_port}}" volumes: - /etc/ceph/ceph.conf:/etc/ceph/ceph.defaults run_once: true when: inventory_hostname == groups.mons[0] and mon_containerized_deployment_with_kv and not mon_containerized_default_ceph_conf_with_kv - name: delete populate-kv-store docker docker: name: populate-kv-store state: absent image: ceph/daemon when: mon_containerized_deployment_with_kv # Use systemd to manage container on Atomic host and CoreOS - name: generate systemd unit file become: true template: src: ../templates/ceph-mon.service.j2 dest: /var/lib/ceph/ceph-mon@.service owner: "root" group: "root" mode: "0644" when: is_atomic or ansible_os_family == 'CoreOS' - name: link systemd unit file for mon instance file: src: /var/lib/ceph/ceph-mon@.service dest: /etc/systemd/system/multi-user.target.wants/ceph-mon@{{ ansible_hostname }}.service state: link when: is_atomic or ansible_os_family == 'CoreOS' - name: enable systemd unit file for mon instance shell: systemctl enable /etc/systemd/system/multi-user.target.wants/ceph-mon@{{ ansible_hostname }}.service failed_when: false changed_when: false when: is_atomic or ansible_os_family == 'CoreOS' - name: reload systemd unit files shell: systemctl daemon-reload when: is_atomic or ansible_os_family == 'CoreOS' - name: systemd start mon container service: name: ceph-mon@{{ ansible_hostname }} state: started enabled: yes changed_when: false when: is_atomic or ansible_os_family == 'CoreOS' - name: wait for ceph.conf exists wait_for: path: /etc/ceph/ceph.conf when: is_atomic - name: run the ceph monitor docker image docker: image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}" name: "{{ ansible_hostname }}" net: "host" state: "running" privileged: "{{ mon_docker_privileged }}" env: "MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }},CEPH_DAEMON=MON,CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }},{{ ceph_mon_extra_envs }}" volumes: "/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph" when: not is_atomic and ansible_os_family != 'CoreOS' and not mon_containerized_deployment_with_kv - name: run the ceph monitor docker image with kv docker: image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}" name: "{{ ansible_hostname }}" net: "host" state: "running" privileged: "{{ mon_docker_privileged }}" env: "KV_TYPE={{kv_type}},KV_IP={{kv_endpoint}},MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }},CEPH_DAEMON=MON,CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }},{{ ceph_mon_extra_envs }}" when: not is_atomic and ansible_os_family != 'CoreOS' and mon_containerized_deployment_with_kv