--- # Defines deployment design and assigns role to server groups - hosts: - mons - agents - osds - mdss - rgws - nfss - restapis - rbdmirrors - clients - mgrs - iscsi_gws gather_facts: false tags: - always tasks: # If we can't get python2 installed before any module is used we will fail # so just try what we can to get it installed - name: check for python2 stat: path: /usr/bin/python ignore_errors: yes register: systempython2 - name: install python2 for debian based systems raw: sudo apt-get -y install python-simplejson ignore_errors: yes when: - systempython2.stat.exists is undefined or systempython2.stat.exists == false - name: install python2 for fedora raw: sudo dnf -y install python creates=/usr/bin/python ignore_errors: yes when: - systempython2.stat.exists is undefined or systempython2.stat.exists == false - name: gather and delegate facts setup: delegate_to: "{{ item }}" delegate_facts: True with_items: "{{ groups['all'] }}" - name: install required packages for fedora > 23 raw: sudo dnf -y install python2-dnf libselinux-python ntp when: - ansible_distribution == 'Fedora' - ansible_distribution_major_version|int >= 23 - hosts: mons gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-mon - hosts: agents gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-agent - hosts: osds gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-osd - hosts: mdss gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-mds - hosts: rgws gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-rgw - hosts: nfss gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-nfs - hosts: restapis gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-restapi - hosts: rbdmirrors gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-rbd-mirror - hosts: clients gather_facts: false become: True roles: - ceph-defaults - ceph-common - ceph-config - ceph-client - hosts: mgrs gather_facts: false become: True roles: - { role: ceph-defaults, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" } - { role: ceph-common, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" } - { role: ceph-config, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" } - { role: ceph-mgr, when: "ceph_release_num.{{ ceph_stable_release }} > ceph_release_num.jewel" } - hosts: iscsi_gws gather_facts: false become: True roles: - { role: ceph-defaults, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" } - { role: ceph-common, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" } - { role: ceph-config, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" } - { role: ceph-iscsi-gw, when: "ceph_release_num.{{ ceph_stable_release }} >= ceph_release_num.luminous" }