##########
#docker: false
-
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-osd/ceph.keyring
- 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
- docker
- docker.io
when: ansible_distribution == 'Ubuntu'
+ tags:
+ with_pkg
- name: install pip and docker on debian
apt:
- python-pip
- docker-engine
when: ansible_distribution == 'Debian'
+ tags:
+ with_pkg
- name: install pip and docker on redhat
yum:
when:
ansible_os_family == 'RedHat' and
ansible_pkg_mgr == "yum"
+ tags:
+ with_pkg
- name: install pip and docker on redhat
dnf:
when:
ansible_os_family == 'RedHat' and
ansible_pkg_mgr == "dnf"
+ tags:
+ with_pkg
+
+- 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: 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
# 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
+ tags:
+ with_pkg
---
+- name: pull ceph daemon image
+ shell: "docker pull {{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}"
+
- name: run the ceph Monitor docker image
docker:
image: "{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}"
state: "running"
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"
+
+- name: fetch ceph.conf from mon
+ fetch:
+ dest: "{{ playbook_dir }}/{{ fetch_directory }}/{{ fsid}}/etc/ceph/ceph.conf"
+ src: /etc/ceph/ceph.conf
+ flat: yes
+
\ No newline at end of file
- /etc/ceph/ceph.conf
- /var/lib/ceph/bootstrap-osd/ceph.keyring
+- name: wait for ceph.conf and keys
+ local_action: >
+ wait_for
+ path="{{ playbook_dir }}/{{ fetch_directory }}/docker_mon_files/{{ item.0 }}"
+ become: false
+ with_together:
+ - ceph_config_keys
+
- name: stat for ceph config and keys
local_action: stat path={{ fetch_directory }}/docker_mon_files/{{ item }}
with_items: ceph_config_keys
failed_when: false
register: statconfig
-- name: try to fetch ceph config and keys
+- name: try to copy ceph config and keys
copy:
- src: "{{ fetch_directory }}/docker_mon_files/{{ item.0 }}"
+ src: "{{ playbook_dir }}/{{ fetch_directory }}/docker_mon_files/{{ item.0 }}"
dest: "{{ item.0 }}"
owner: root
group: root
changed_when: false
with_together:
- ceph_config_keys
- - statconfig.results
- when: item.1.stat.exists == true
- docker
- docker.io
when: ansible_distribution == 'Ubuntu'
+ tags:
+ with_pkg
- name: install pip and docker on debian
apt:
- python-pip
- docker-engine
when: ansible_distribution == 'Debian'
+ tags:
+ with_pkg
- name: install pip and docker on redhat
yum:
when:
ansible_os_family == 'RedHat' and
ansible_pkg_mgr == "yum"
+ tags:
+ with_pkg
- name: install pip and docker on redhat
dnf:
when:
ansible_os_family == 'RedHat' and
ansible_pkg_mgr == "dnf"
+ tags:
+ with_pkg
+
+- 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: 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
# 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
+ tags:
+ with_pkg
---
+# (rootfs) for reasons I haven't figured out, docker pull and run will fail.
+- name: pull ceph daemon image
+ shell: "docker pull {{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}"
+
- name: run the ceph osd docker image
docker:
image: "{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}"